1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
public class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer{
private TreeCellRenderer delegate;
private JCheckBox checkBox1;
private JCheckBox checkBox2;
private JLabel param, admin;
public CheckTreeCellRenderer(TreeCellRenderer delegate) {
this.delegate = delegate;
this.setLayout(new BorderLayout());
this.setOpaque(false);
this.checkBox1 = new JCheckBox();
this.checkBox2 = new JCheckBox();
// this.checkBox1.setOpaque(false);
// this.checkBox2.setOpaque(false);
this.checkBox1.setFocusable(true);
this.param=new JLabel("Param");
this.admin=new JLabel("Admin");
}
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){
Component renderer = delegate.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
removeAll();
TreePath path = tree.getPathForRow(row);
if(path==null)
return renderer;
if(row==0) {
add(renderer, BorderLayout.CENTER);
add(getPanel4FirstLine(), BorderLayout.EAST);
}
else if(path.getPathCount()==2){
add(renderer, BorderLayout.CENTER);
}
else {
add(renderer, BorderLayout.CENTER);
add(getPanel(checkBox1, checkBox2), BorderLayout.EAST);
}
return this;
}
private JPanel getPanel(JCheckBox c1, JCheckBox c2) {
JPanel p=new JPanel();
GroupLayout layout = new GroupLayout(p);
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
.addGroup(layout.createParallelGroup()
.addComponent(c1))
.addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
.addGroup(layout.createParallelGroup()
.addComponent(c2))
.addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGap(ComponentDimension.GAP_4_VERTICAL_GROUP/2)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(c1)
.addComponent(c2))
);
p.setLayout(layout);
return p;
}
private JPanel getPanel4FirstLine() {
JPanel p=new JPanel();
GroupLayout layout = new GroupLayout(p);
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
.addGroup(layout.createParallelGroup()
.addComponent(this.param))
.addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
.addGroup(layout.createParallelGroup()
.addComponent(this.admin))
.addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGap(ComponentDimension.GAP_4_VERTICAL_GROUP+2)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(this.param)
.addComponent(this.admin))
);
p.setLayout(layout);
return p;
}
} |
Partager