Bonjour,

Voici mon probleme, je réalise un p'tit programme de gestion de licence bref! je voudrais créer un tableau dans lequel afficher mes différentes racines fichiers genre " c:\repertoire\toto.dat ". Pour cela, j'ai créer un bouton "Ajouter" séparé de mon tableau (JTable). Dès que je clique sur mon bouton Ajouter cela ouvre l'explorateur et je vais chercher mon fichier, j'en extrait la racine. Enfin, je stocke cette racine et je l'affiche sur le tableau. Si je veux rajouter une deuxieme racine sa descend d'une ligne dans mon tableau.

voici mon morceau de code, je suppose qu'il est erroné puisque mon bouton Ajouter ne fonctionne pas, et mes fichiers ne s'affiche que quand j'appuie sur les cellules or c'est pas ce que je veux! je ne veux pas que mes cellules soit editable ! je sais quand mettant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
public boolean isCellEditable(int rowIndex, int columnIndex) {
    return false; }
sa supprime l'editabilité des cellule mais du coup je peux pas les modifier puisque ma touche Ajouter ne fonctionne pas !

voici mon 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
public class MethodeTableau extends AbstractTableModel{
 
    private final List<FCalcul> fcalculs = new ArrayList<FCalcul>();
    private final String[] titre ={" Fichiers envoyés","Etat"};
 
    public MethodeTableau(){
        super();
        fcalculs.add(new FCalcul(" ligne 1 ", false)); //ligne 1
        fcalculs.add(new FCalcul(" ligne 2 ", false)); //ligne 2
        fcalculs.add(new FCalcul(" ligne 3 ", false)); //ligne 3
        fcalculs.add(new FCalcul(" ligne 4 ", false)); //ligne 4
        fcalculs.add(new FCalcul(" ligne 5 ", false)); //ligne 5
        fcalculs.add(new FCalcul(" ligne 6 ", false)); //ligne 6
        fcalculs.add(new FCalcul(" ligne 7 ", false)); //ligne 7
        fcalculs.add(new FCalcul(" ligne 8 ", false)); //ligne 8
        fcalculs.add(new FCalcul(" ligne 9 ", false)); //ligne 9
        fcalculs.add(new FCalcul(" ligne 10 ", false)); //ligne 10
    }
 
     public int getRowCount() {
         return fcalculs.size();
     }
 
     public int getColumnCount(){
         return titre.length;
     }
 
     @Override
        public Class getColumnClass(int columnIndex){
            switch(columnIndex){
                case 0: return String.class; // specification de la colonne ( String)
 
                case 1: return Boolean.class; // ( Booléen)
                    default:
                                return Object.class;
                                }
                                                    }
 
        @Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
    return columnIndex ==0; //juste la 1er colonne  ou true pour toutes les cases ou false pour aucune
}
 
     public Object getValueAt(int rowIndex, int columnIndex) {
        switch(columnIndex){
            case 0: return fcalculs.get(rowIndex).getNom();
            case 1: return fcalculs.get(rowIndex).getEtat();
            default: return null;
        }
     }
 
     @Override
     public void setValueAt(Object aValue, int rowIndex, int columnIndex){
         if(aValue!= null){
             FCalcul fcalcul = fcalculs.get(rowIndex); 
             switch(columnIndex){
                 case 0 :
                     fcalcul.setNom((String)aValue);
                     break;
                 case 1:
                     fcalcul.setEtat((Boolean)aValue);
                     break;
             }
         }
 
 
     }
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
public class TableauEnvoi extends JFrame {
 
    private MethodeTableau modele_Tab = new MethodeTableau();
    private JTable tableau;
 
    public static int X2[]={0,0,0};
    public static int Y2[]={0,1,6};
    private JButton Ajouter;
    private String nom,yep;
    private int Index =0;
 
    public TableauEnvoi(){
        super();
                setTitle("Répertoire Lancement Nastran");
                setSize(700,650); // x  puis y
                setLocationRelativeTo(null);
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setResizable(false);
                Container PLance = getContentPane();
                PLance.setLayout(new  FlowLayout());
 
                //////////////////////////////////////////////////////////////////
                GridBagLayout grille4 = new GridBagLayout();
             PLance.setLayout(grille4);
 
             // contraintes de grille pour le texte
             GridBagConstraints cm1 = new GridBagConstraints();
 
             cm1.fill = GridBagConstraints.BOTH;
             cm1.gridx=X2[0];
             cm1.gridy=Y2[0];
             cm1.insets = new Insets(5,5,5,15); 
 
 
             Ajouter = new JButton("Ajouter Fichiers");
 
             GridBagConstraints cm2 = new GridBagConstraints();
 
             cm2.fill = GridBagConstraints.BOTH;
             cm2.gridx=X2[1];
             cm2.gridy=Y2[1];
             cm2.insets = new Insets(5,5,5,15);              
 
 
             PLance.add(Ajouter,cm2);
             Ajouter.addActionListener(new AjouterAction());
              ////////////////////////////////////////////////////////////////
 
              JTable tableau = new JTable(new MethodeTableau());
              PLance.add(new JScrollPane(tableau),cm1);
 
              tableau.setDefaultEditor(String.class, new ValeurCellEditor());
 pack();
 
    }
public class ValeurCellEditor extends AbstractCellEditor implements TableCellEditor, ActionListener {
 
public ValeurCellEditor() {
        super();
 
}
 
    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if ("change".equals(e.getActionCommand())) {
 
} else {
 
 }
    }
 
    @Override
    public Object getCellEditorValue() {
        return yep;
    }
 
    @Override
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        yep = (String)value;
 
       // return bouton;
        return Ajouter;
    }
}public class EtatCellEditor extends AbstractCellEditor implements  ActionListener {
 
 
    public EtatCellEditor() {
        super();
 
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
 
        if (Index == 1){
            System.out.println(" Index à 1");
 
        }else{
            System.out.println(" Index à "+Index);
        }
//        
    }
 
    @Override
    public Object getCellEditorValue() {
        return false;
    }
 
//    @Override
//    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
//        yep = (String)value;
//
//        return yep;
//    }
}   
 
    class AjouterAction implements ActionListener{
 
            public void actionPerformed(ActionEvent Aj){
                 Filtre test = new Filtre(".dat",".dat");
 
                JFileChooser chooser = new JFileChooser(".");
                chooser.addChoosableFileFilter(test);
 
                 if(chooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){
                    System.out.println(chooser.getSelectedFile().getAbsolutePath()); 
               nom=chooser.getSelectedFile().getAbsolutePath();
 
               yep=chooser.getSelectedFile().getName(); 
               System.out.println(yep); }
                                                    }
        }
 
}
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
public class FCalcul {
 
    private String Name;
    private boolean Etat;
 
    public FCalcul(String Name,boolean Etat){
        super();
        this.Name = Name;
        this.Etat = Etat;
    }
 
    public String getNom(){
        return Name;
    }
 
    public void setNom(String Name){
        this.Name=Name;
    }
 
    public boolean getEtat(){
        return Etat;
    }
 
    public void setEtat(boolean Etat){
        this.Etat=Etat;
    }
}
le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class GestionLicence {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 
 
        TableauEnvoi Tab1 = new TableauEnvoi();
        Tab1.setVisible(true);
    }
}
je sais pas si j'ai bien expliqué?, mais j'ai fait plein de test ,de modification et tout, je suis un peu .
Une idée pour mon problème ? Merci