Bonsoir tout le monde,
Voilà j'ai un petit problème avec mon model de table et ma classe JTable qui implémente TableModelListener. Le problème est certainement très bête mais je bute dessus depuis un petit moment alors un oeil neuf pourra certainement m'aiguiller. Je m'explique, j'ai deux classes, une classe monTableau qui hérite de JTable et qui implémente tableModelListener pour la modification des valeurs dans ma table et mon modele de table.
voici la classe modele du tableau :
et voici le code relatif à la classe tableau :
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 package JAlgo; /** * * @author fterm */ import javax.swing.event.*; import javax.swing.table.*; public class tableBoucleModele extends AbstractTableModel{ private String[] nomColonnes; private Object[][] data; public tableBoucleModele(){ nomColonnes = new String[2]; nomColonnes[0] = "Boucle"; nomColonnes[1] = "Condition"; data = new Object[50][2]; } public int getColumnCount(){ return(nomColonnes.length); } public int getRowCount(){ return(data.length); } public String getColumnName(int col){ return(nomColonnes[col]); } public Object getValueAt(int row, int col){ return(data[row][col]); } public void setValueAt(Object value, int row, int col){ data[row][col] = value; fireTableCellUpdated(row, col); } public void clean(){ data = new Object[50][2]; } public boolean isCellEditable(int row, int col) { return true; } }
Ces deux classes sont utilisées pour modéliser un tableau dans une interface swing (JFrame).
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 package JAlgo; /** * * @author fterm */ import javax.swing.event.*; import javax.swing.table.*; import javax.swing.*; public class TableBoucle extends JTable implements TableModelListener{ public TableBoucle(){ super(new tableBoucleModele()); } public void tableChanged(TableModelEvent e){ int row = e.getFirstRow(); int column = e.getColumn(); tableBoucleModele model = (tableBoucleModele)e.getSource(); String columnName = model.getColumnName(column); Object data = model.getValueAt(row, column); System.out.println(data); } }
Voici l'erreur de compilation qui apparait :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at JAlgo.tableBoucleModele.getColumnName(tableBoucleModele.java:35)
at JAlgo.TableBoucle.tableChanged(TableBoucle.java:28)
at javax.swing.JTable.setModel(JTable.java:2878)
at javax.swing.JTable.<init>(JTable.java:417)
at javax.swing.JTable.<init>(JTable.java:357)
at JAlgo.TableBoucle.<init>(TableBoucle.java:20)
at JAlgo.IHM.<init>(IHM.java:137)
at JAlgo.IHM.main(IHM.java:422)
Merci pour tout conseil ou aide apporté.
Cordialement,
fterm
Partager