packagejtree.customNode;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Component;importjava.awt.Dimension;importjavax.swing.Icon;importjavax.swing.JPanel;importjavax.swing.JTree;importjavax.swing.UIManager;importjavax.swing.plaf.ColorUIResource;importjavax.swing.tree.TreeCellRenderer;importjtree.checkBoxTree.CheckBoxTreeLabel;public class CusNodeTreeCellRender extends JPanel implementsTreeCellRenderer {private static final long serialVersionUID = 4676667399191240255L;protectedCheckBoxTreeLabel label;//protected JLabel label;
publicCusNodeTreeCellRender() {
setLayout(newBorderLayout());
add(label= newCheckBoxTreeLabel());//add(label = new JLabel());
label.setForeground(UIManager.getColor("Tree.textForeground"));this.setPreferredSize(new Dimension(100, 20));
}/** (non-Javadoc)
*
* @see
* javax.swing.tree.TreeCellRenderer#getTreeCellRendererComponent(javax.
* swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean)*/@OverridepublicComponent getTreeCellRendererComponent(JTree tree, Object value,boolean selected, boolean expanded, boolean leaf, introw,booleanhasFocus) {
String stringValue=tree.convertValueToText(value, selected, expanded,
leaf, row, hasFocus);boolean nodeIsEnabled =((CusTreeNode) value).isEnabled();
setEnabled(nodeIsEnabled);
label.setFont(tree.getFont());
label.setText(stringValue);
label.setSelected(selected);
label.setFocus(hasFocus);if(leaf)
label.setIcon(UIManager.getIcon("Tree.leafIcon"));else if(expanded)
label.setIcon(UIManager.getIcon("Tree.openIcon"));else{
label.setIcon(UIManager.getIcon("Tree.closedIcon"));
}
Icon icon=((CusTreeNode) value).getIcon();if(icon != null){
label.setIcon(icon);
}return this;
}
@Overridepublic voidsetBackground(Color color) {if (color instanceofColorUIResource)
color= null;super.setBackground(color);
}
}