[JTable] Changer les données
Bonjour,
Voilà je ne suis pas encore très à l'aise avec les JTable et là je suis face à un problème mystère (pour moi en tout cas).
Ma classe est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
private JTableModel myModel;
public JTable table;
private int selectedRowCourant = -1;
private Object[][] data={{"toto", "tata" , "null"},};
public TableObjetAbstrait() {
myModel = new JTableModel();
TableSorter sorter = new TableSorter(myModel);
table = new JTable(sorter);
sorter.addMouseListenerToHeaderInTable(table);
} |
La classe JTable Model est celle ci :
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
| class JTableModel extends AbstractTableModel{
final String[] columnNames = {"Nom", "Observation" };//, "oid"};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
return false;
}
}//fin JTableModel |
Au départ j'ai bien "toto" et "tata" qui s'affiche dans mon tableau.
A un moment donné de mon prog j'appelle une méthode changedata(Objet[][]) qui est donc censée changer ces données mais rien ne se passe!!
Le code de la fonction est tout simplement :
Code:
1 2 3 4 5
| public void changedata(){
Object[][] datatmp = {{"titi", "toto" , "null"},};
this.data=datatmp;
myModel.fireTableRowsInserted( data.length-1, data.length-1 );
} |
Et pas de "titi" "toto" dans mon tableau...
J'ai vérifié mon prog rentre bien dans la fonction et des print de data[0][0] et data[0][1] affiche bien titi et toto!... :roll:
Une idée? Merci!!