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

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();
}
}