package com.fr.plugin.event.manager.ui.tree; 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() { } @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) { String name = ((MyTree) value).getData().getNodeName(); setText(name); Icon icon = ((MyTree) value).getData().getIcon(); if (icon != null) { setIcon(icon); } } 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(); } }