bonjour tous le monde,
j'ai ecrit un code d'une arbre de checkbox, le probleme que je veux à partir d'un bouton recuprer le checkbox qui sont coches,, bien evidemant pour faire d'utre tests::
voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
import java.awt.Dimension;
import java.io.File;
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.event.CellEditorListener;
 
public class test_explorer_Rep extends JFrame {
    private File 	_roots;
    private JTree		_dirs;
 
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
    private JButton but;
 
        public test_explorer_Rep() {
 
        but=new JButton("recuperer IsChecked ");
        p1.setLayout(new GridLayout());
        p2.setLayout(new FlowLayout());
 
        DefaultTreeCellRenderer dtcr = new DefaultTreeCellRenderer();
        RenduComposant rc = new RenduComposant();
        EditComposant ec = new EditComposant();
        // taille de la fenetre
 
        setSize(500,500);
 
        // on recupère le dossier parent
        _roots = new File("d:\\test");
 
        // on définit notre premier noeud
        DefaultMutableTreeNode racine = new DefaultMutableTreeNode(new JCheckBox("Reseau entier"));        
 
 
 
 
        // on recupère son contenu grace a getSubDirs
        DefaultMutableTreeNode root = getSubDirs(_roots);
        // et on l ajoute a notre premier noeud
           racine.add(root);
 
        _dirs = new JTree(racine);
        _dirs.setCellRenderer(rc);
        _dirs.setCellEditor(ec);
        _dirs.setEditable(true);
 
        p1.add(_dirs);
        p2.add(but);
        getContentPane().add(p1,"North");
        getContentPane().add(p2,"South");
 
            }
 
    /**
     * Méthode récursive permettant de récupérer
     * tous les fichiers et sous dossiers d un autre
     * @param root un File qui représente le lecteur ou le repertoire de départ
     * @return DefaultMutableTreeNode
     */
    public DefaultMutableTreeNode getSubDirs(File root) {
        // on créé un noeud
        DefaultMutableTreeNode racine = new DefaultMutableTreeNode(new JCheckBox(root+""),true);
 
        // on recupère la liste des fichiers et sous rep
        File[] list = root.listFiles();
 
        if ( list != null) {
            // pour chaque sous rep on appel cette methode => recursivité
            for (int j = 1 ; j<list.length ; j++) {
                DefaultMutableTreeNode file = null;
                if (list[j].isDirectory()) {
                    file = getSubDirs(list[j]);
                    racine.add(file);
                }
            }
        }
        return racine;
    }
 
    //main
    public static void main(String[] args) {
        test_explorer_Rep ex = new test_explorer_Rep();
        ex.setVisible(true);
    }
 
 
}
// 2 eme classe pour rendre le composant check box
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;
    }
}
 
// 3 eme classe pour editer le composant check box
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;
    }
}
merci d'avance