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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.util.*;
//public class TreeAvecCB {
//}
class FenetreTree extends JFrame{
final JCheckBox rootCheck = new JCheckBox("BSC_NAME") ;
DefaultMutableTreeNode noeudParent = new DefaultMutableTreeNode(rootCheck);
DefaultMutableTreeNode noeudEnfant=null;//=new DefaultMutableTreeNode(new JCheckBox("Relais_gammart"));;
DefaultMutableTreeNode noeudEnfant1=null;
JPanel p2=new JPanel();
public JButton but;
public JTree arbo;
public JCheckBox jcb1 = new JCheckBox();
public JCheckBox jcb2 = new JCheckBox();
FenetreTree(){
super("Exemple pour homerosaur");
setSize(800, 600);
//DefaultMutableTreeNode noeudParent;
but=new JButton("recuperer IsChecked ");
DefaultTreeCellRenderer dtcr = new DefaultTreeCellRenderer();
RenduComposant rc = new RenduComposant();
EditComposant ec = new EditComposant();
String[] tableau = {"Relais_gammart", "relais_tunis", "ennasr", "bizerte", "annahli"};
p2.setLayout(new GridLayout());
//JScrollPane jsp = new JScrollPane();
//new JCheckBox("BSC_NAME").setToolTipText("ggg");
//noeudParent = new DefaultMutableTreeNode(new JCheckBox("BSC_NAME"));
rootCheck.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
boolean sel = rootCheck.isSelected() ;
for( int i=0 ; i<noeudParent.getChildCount() ; i++ ) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode) noeudParent.getChildAt( i ) ;
JCheckBox c = (JCheckBox) child.getUserObject() ;
c.setSelected( sel ) ;
}
arbo.updateUI() ;
}
} ) ;
//for(int i = 0; i < tableau.length; i++){
jcb1 = new JCheckBox(tableau[0]);
//jcb.setToolTipText("");
noeudEnfant = new DefaultMutableTreeNode(jcb1, true);
jcb1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
boolean sel = jcb1.isSelected() ;
for( int i=0 ; i<noeudEnfant.getChildCount() ; i++ ) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode) noeudEnfant.getChildAt( i ) ;
JCheckBox c = (JCheckBox) child.getUserObject() ;
c.setSelected( sel ) ;
}
arbo.updateUI() ;
}
} ) ;
noeudParent.add(noeudEnfant);
DefaultMutableTreeNode x = new DefaultMutableTreeNode(new JCheckBox("child of child"), true);
noeudEnfant.add(x);
DefaultMutableTreeNode y = new DefaultMutableTreeNode(new JCheckBox("child of child"), true);
noeudEnfant.add(y);
jcb2 = new JCheckBox(tableau[1]);
noeudEnfant1 = new DefaultMutableTreeNode(jcb2, true);
jcb2.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
boolean sel = jcb2.isSelected() ;
for( int i=0 ; i<noeudEnfant1.getChildCount() ; i++ ) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode) noeudEnfant1.getChildAt( i ) ;
JCheckBox c = (JCheckBox) child.getUserObject() ;
c.setSelected( sel ) ;
}
arbo.updateUI() ;
}
} ) ;
DefaultMutableTreeNode cc = new DefaultMutableTreeNode(new JCheckBox("child of child"), true);
noeudEnfant1.add(cc);
DefaultMutableTreeNode f = new DefaultMutableTreeNode(new JCheckBox("child of child"), true);
noeudEnfant1.add(f);
noeudParent.add(noeudEnfant);
noeudParent.add(noeudEnfant1);
arbo = new JTree(noeudParent);
arbo.setCellRenderer(rc);
arbo.setCellEditor(ec);
arbo.setBackground(new Color(238,238,238));
arbo.setEditable(true);
//getContentPane().add(arbo);
p2.add(but);
MonEcouteur_treeVB e= new MonEcouteur_treeVB(this);
but.addActionListener(e);
JScrollPane scroll = new JScrollPane(arbo);
scroll.setPreferredSize(new Dimension(500,440));
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
// on ajoute notre jscrollpane
getContentPane().add(scroll,"North");
getContentPane().add(p2,"South");
}
public static void main(String[] arg){
JFrame arboCheck = new FenetreTree();
arboCheck.setVisible(true);
}
}
class RenduComposant implements TreeCellRenderer{
public Component getTreeCellRendererComponent(JTree tree, Object obj,
boolean selected, boolean expanded, boolean leaf,
int row, boolean hasFocus){
DefaultMutableTreeNode dmtcr = (DefaultMutableTreeNode)obj;
JCheckBox toto = (JCheckBox)dmtcr.getUserObject();
return toto;
}
}
class EditComposant implements TreeCellEditor{
public void addCellEditorListener(CellEditorListener l){ }
public void cancelCellEditing() { }
public Object getCellEditorValue(){
return this;
}
public boolean isCellEditable(EventObject evt){
if(evt instanceof MouseEvent){
MouseEvent mevt = (MouseEvent) evt;
if (mevt.getClickCount() == 1){
return true;
}
}
return false;
}
public void removeCellEditorListener(CellEditorListener l){}
public boolean shouldSelectCell(EventObject anEvent){
return true;
}
public boolean stopCellEditing(){
return false;
}
public Component getTreeCellEditorComponent(JTree tree, Object obj, boolean isSelected, boolean expanded, boolean leaf, int row){
DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)obj;
JCheckBox tata=(JCheckBox)dmtn.getUserObject();
tata.setEnabled(true);
return tata;
}
} |
Partager