Salut,
J'ai un probleme avec la fct addRow depuis que j'ai changé DefaultModele par mon propre modele

Je cree ma classe modele, j'ajoute un "extends DefaultModele". Jusqu'à tout va bien. Je remplace ensuite tous les defaultmodeles par mon nouveau modele. Enfin j'associe le modele crée avec la JTable. Jusqu'ici pas d'erreur!

Le truc c'est que quand il tente d'ajouter un ligne à la JTable par le biais de "addRow" j'obtiend une exepetion que je catch :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
listfolder - Exception = 0 >= 0;cause null;Stack [Ljava.lang.StackTraceElement;@360be0;localized at 0 >= 0
Mon programme est construit comme suit:

Je construit mon interface dans une classe.
Dans une autre classe, je construit ma JTable que je peux renvoyer par l'intermédaire d'une fct "getJTable".
Dans une autre classe, je cree le modele avec toutes les méthodes nécessaires!

J'associe le modele à la JTable dans la classe ou celle-ci est crée. Je peux renvoyer le modele par l'intermediaire d'une fct.

L'affichage de la JTable se passe bien mais l'ajout ne fonctionne pas (cf. exception).

Sachez enfin qu'avec un defaultmodel, cette même table fonctionne parfaitement, ajout compris!

j'ai utilisé le model dvp par un des membres de ce forums :
http://www.developpez.net/forums/att...7&d=1145880777

J'initialise la JTable comme suit :
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
 
import java.awt.Color;
import javax.swing.*;
import javax.swing.table.*;
 
 
public class JFileTable {
 
    // Instance attributes used in this example
    private    JTable        table;
 
    private    String        columnNames[];
    private    Object        dataValues[][];
 
    private JFileModelTable modele;
 
 
    JFileTable(){
 
        // Create columns
        columnNames = new String[]{"ID", "Fichier", "Chemin", "Type", "Taille"};
        dataValues = new Object[0][5];
 
        // Create a new table instance
        table = new JTable();
 
        modele = new JFileModelTable(columnNames,dataValues);
        table.setModel(modele);
 
        // Configure some of JTable's paramters
        table.setShowHorizontalLines( false );
        table.setRowSelectionAllowed( true );
        table.setColumnSelectionAllowed( false );
 
        //table.getColumnModel().getColumn(0).setPreferredWidth(5);
        table.getColumnModel().getColumn(0).setMaxWidth(35);
        table.getColumnModel().getColumn(0).setMinWidth(30);
 
        table.getColumnModel().getColumn(3).setMaxWidth(90);
        table.getColumnModel().getColumn(3).setMinWidth(40);
 
        table.getColumnModel().getColumn(4).setMinWidth(40);
        table.getColumnModel().getColumn(4).setMaxWidth(150);
 
        // Change the selection colour
        table.setSelectionForeground( Color.white );
        table.setSelectionBackground( Color.lightGray );
    }
 
    public JTable getJTable(){
        return table;
    }
 
    public JFileModelTable getJTableModel(){
        return modele;
    }
 
 
}
Dans mon interface j'utilise la JTable avec le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
           JFileTable newTable = new JFileTable();
           fileList = newTable.getJTable();//fileList ets de type JTable
           modele = newTable.getJTableModel();// Creation du modele de table
           fileList.addMouseListener(this);
Enfin pour ajouter une ligne j'execute la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
// AddRowModel = type : private JFileModelTable addRowModel;
addRowModel.addRow(new String [] {""+addRowModel.getRowCount(),
                                                  roots[i].getName(),roots[i].getPath(),
                                                   new Fichier(roots[i].getPath()).getFileExtention(null).toLowerCase(), 
                                                   Fichier.convertSizeToHuman(roots[i].length())});
A ce moment j'obtiens une exeption et aucune ligne n'est rajouté!

Savez vous d'ou vient le probleme. Et sinon le cas echéant, savez vous s'il est possible d'empecher l'edition sans pour autant coder un nouveau model.

Merci bcp