PDA

View Full Version : [JAVA] Inserimento valori di due vettori in una jtable


serpico84
13-06-2009, 12:08
Come da titolo dovrei inserire i valori di due vettori di stringhe in una jtable. Piu precisamente devo inserire i valori del primo vettore nella prima colonna e quelli del secondo vettore nella seconda. Vorrei farlo in un'unica procedura a cui passo i vettori, dovrebbe essere semplice ma non riesco a indirizzarli bene per righe e colonne.

PGI-Bis
13-06-2009, 14:58
Crei un modello vuoto, lo "riempi" e lo assegni alla JTable.

DefaultTableModel newModel = new DefaultTabelModel(LUNGHEZZA_VETTORI, NUMERO_COLONNE);
for(int riga = 0; < LUNGHEZZA_VETTORI; riga++) {
newModel.setValueAt(vettoreUno.get(riga), riga , COLONNA_VETTORE_UNO);
newModel.setValueAt(vettoreDue.get(riga), riga , COLONNA_VETTORE_DUE);
}
table.setModel(newModel);

Usando un modello inizialmente non collegato ad una tabella risparmi un bel po' di notifiche di aggiornamento alla vista e puoi eventualmente appoggiarti ad un thread in background per il riempimento nel caso in cui i dati da passare siano parecchi impedendo così il sovraccarico dell'EDT:

serpico84
13-06-2009, 20:52
mmm mi da questo errore...
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0

PGI-Bis
13-06-2009, 21:03
La JVM ti dice che stai cercando di accedere all'elemento di indice zero di un array che ha zero elementi (quindi non ha un elemento di indice zero).

Senza codice più di questo non si può dire.

serpico84
14-06-2009, 15:43
si naturalmente sbagliavo a mettere come prima colonna "1" anzichè 0...ecco il codice che fa quello che voglio finalmente e funziona:
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
if (orari.size()>=studi.size()){
model.setNumRows(orari.size());}
else model.setNumRows(studi.size());
for (int i = 0; i < orari.size(); i++) {
jTable1.setValueAt(orari.get(i),i,0);
}jTable1.setModel(model);
for (int i = 0; i < studi.size(); i++) {
jTable1.setValueAt(studi.get(i),i,1);
}jTable1.setModel(model);

grazie mille PGI-Bis!!!