recuperer les checkbox cochés d'une arbre de checkbox
	
	
		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:
	
| 12
 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