View Javadoc
1 package net.mlw.util.swing; 2 3 import java.awt.BorderLayout; 4 import java.awt.Component; 5 import java.awt.Insets; 6 7 import javax.swing.JCheckBox; 8 import javax.swing.JPanel; 9 import javax.swing.JTree; 10 import javax.swing.tree.DefaultTreeCellRenderer; 11 import javax.swing.tree.TreeCellRenderer; 12 13 public class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer 14 { 15 protected CheckTreeNode node; 16 protected TreeCellRenderer renderer; 17 protected JCheckBox check; 18 19 public CheckTreeCellRenderer(JTree tree) 20 { 21 this(tree, new DefaultTreeCellRenderer()); 22 } 23 24 public CheckTreeCellRenderer(JTree tree, TreeCellRenderer renderer) 25 { 26 setOpaque(false); 27 setLayout(new BorderLayout()); 28 29 this.renderer = renderer; 30 add(BorderLayout.CENTER, renderer.getTreeCellRendererComponent(tree, "", true, true, true, 0, true)); 31 32 check = new JCheckBox(); 33 check.setMargin(new Insets(0, 0, 0, 0)); 34 check.setBorderPaintedFlat(true); 35 check.setOpaque(false); 36 add(BorderLayout.WEST, check); 37 } 38 39 public Component getTreeCellRendererComponent( 40 JTree tree, 41 Object value, 42 boolean selected, 43 boolean expanded, 44 boolean leaf, 45 int row, 46 boolean hasFocus) 47 { 48 if (value instanceof CheckTreeNode) 49 { 50 node = (CheckTreeNode) value; 51 check.setSelected(node.isSelected()); 52 value = node.getUserObject(); 53 } 54 renderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); 55 return this; 56 } 57 }

This page was automatically generated by Maven