Salut,
J'utilise une JTable qui est "éditable", je peux donc rentrer du texte dans chaque cellule au clavier, mais dès que je sorts de la cellule pour aller dans une autre, les données sont effacées.
A quoi est-ce dû ?
Merci pour toute info.
Salut,
J'utilise une JTable qui est "éditable", je peux donc rentrer du texte dans chaque cellule au clavier, mais dès que je sorts de la cellule pour aller dans une autre, les données sont effacées.
A quoi est-ce dû ?
Merci pour toute info.
Salut david si tu perd tes donnés apres avoir editer ta jTable, c'est que problablement qu'elles ne sont pas stockés dans une structure de donné
Assure toi bien que tu as lié ta jTable avec un TableModel, la jTable n'est juste que la representation d'une structure de donné. regarde DefaultTableModel ou AbstractTableModel dans la Doc
J'avais déjà défini un "TableModel", mais je n'avais pas mis une méthode dedans permettant d'afficher les éléments saisis dans le "JTable". Par contre, même s'ils restent affichés dans le "JTable", pas moyen de les récupérer dans une variable.
Merci d'avance pour toute info supplémentaire.
Et il fait quoi ton "TableModel" ? (on peut avoir un peu de code svp)
OK, voilà le code de mon modèle :
A+
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 class MyTableModel extends AbstractTableModel { private String[] columnNames = {"Champs", "Données"}; private Object[][] data = { {"Nom",""},{"Editeur",""},{"Année",""},{"Métal",""},{"Diamètre",""}}; 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 true; } public void setValueAt(Object value, int row, int col) { data[row][col] = value; fireTableCellUpdated(row, col); } private void printDebugData() { int numRows = getRowCount(); int numCols = getColumnCount(); for (int i=0; i < numRows; i++) { System.out.print(" row " + i + ":"); for (int j=0; j < numCols; j++) { System.out.print(" " + data[i][j]); } System.out.println(); } System.out.println("--------------------------"); } }
Salut
Ton Model me semble correct.
Qu'est ce que tu veux faire exactement ?Envoyé par david71
sylvain_2020
Si tu dis 'ils restent affichés dans la jtable", ca veut dire que ton objet data a bien été mis-à-jour. Donc si tu veux récupérer une valeur, il faut aller la récupérer dedans.
Salut, et bien en fait lorsque j'ai rempli mon "JTable", je veux récupérer mes données dans un tableau, donc lors de l'appui sur un bouton, j'appelle cette méthode :
Ce qui est curieux, c'est que lors de l'affectation de la colonne 0 du JTable, j'ai bien "Editeur" dans "dataStr", par contre pas moyen de remplir dataStr avec la colonne 1 de mon JTable avec les données que je viens de saisir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Object[][] dataStr = {{"",""}}; MyTableModel m = new MyTableModel(); dataStr = new Object[5][1]; dataStr[0][0] = m.getValueAt(1,0); for(int i = 0 ; i <=4 ; i++) { dataStr[0][i] = m.getValueAt(i,1); }
A+
Bon finalement, la variable perd ses données dès que le modèle abstrait est créé, donc il faut récupérer les données dans une autre variable au fur et à mesure...
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager