J'ai une JTable vide, absolument rien dedans. J'ai besoin de générer dynamiquement ses colonnes de table d'une certaine manière. Une version simplifiée du code que j'ai pour ma tentative:Ajout dynamique de colonnes à JTable
@Action
public void AddCol() {
for (int i = 0; i < 10; i++) {
TableColumn c = new TableColumn(i);
c.setHeaderValue(getColNam(i));
table.getColumnModel().addColumn(c);
}
}
Mais je reçois un
Exception dans le thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0> = 0
Qu'est-ce que je fais mal?
est ici la stacktrace complète si elle aide:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
at engine.Processor$UpdateTable.run(Processor.java:131)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
getColName est juste une méthode maquette pour montrer ce que je fais dans le problème code..The avec le constructeur sans param, si je crée la colonne sans l'indice modèle, la table générée pense qu'il a seulement une colonne, donc quand je remplis une ligne avec setValueAt, il remplit la ligne entière avec la valeur de toutes les colonnes. – jonasespelita