forked from FR-Global/plugin-event-manager
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.8 KiB
67 lines
1.8 KiB
package com.fr.plugin.event.manager.ui.tree; |
|
|
|
import com.fr.plugin.event.manager.data.MyNode; |
|
import com.fr.plugin.event.manager.data.MyTree; |
|
|
|
import javax.swing.BorderFactory; |
|
import javax.swing.Icon; |
|
import javax.swing.JTree; |
|
import javax.swing.tree.DefaultTreeCellRenderer; |
|
import java.awt.Color; |
|
import java.awt.Component; |
|
|
|
/** |
|
* 组件树节点渲染方式 |
|
* @author Joe |
|
* Created by Joe on 12/14/2020 |
|
*/ |
|
public class MyComponentCellRenderer extends DefaultTreeCellRenderer { |
|
public MyComponentCellRenderer() { |
|
} |
|
|
|
/** |
|
* 负责设置节点名称、图标和提示文字 |
|
* |
|
* @param tree |
|
* @param value |
|
* @param selected |
|
* @param expanded |
|
* @param leaf |
|
* @param row |
|
* @param hasFocus |
|
* @return |
|
*/ |
|
@Override |
|
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, |
|
boolean leaf, int row, boolean hasFocus) { |
|
super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); |
|
if (value instanceof MyTree) { |
|
MyNode node = ((MyTree) value).getData(); |
|
String name = node.getNodeName(); |
|
setText(name); |
|
Icon icon = node.getIcon(); |
|
if (icon != null) { |
|
setIcon(icon); |
|
} |
|
setToolTipText(name); |
|
} |
|
this.setBorder(BorderFactory.createEmptyBorder(1, 0, 1, 0)); |
|
this.setBackgroundNonSelectionColor(new Color(255, 255, 255)); |
|
return this; |
|
} |
|
|
|
@Override |
|
public Icon getClosedIcon() { |
|
return getIcon(); |
|
} |
|
|
|
@Override |
|
public Icon getLeafIcon() { |
|
return getIcon(); |
|
} |
|
|
|
@Override |
|
public Icon getOpenIcon() { |
|
return getIcon(); |
|
} |
|
}
|
|
|