[JTable] Problème d'insertion
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:
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:
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:
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:
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