PDA

View Full Version : [JAVA] - DB e JTable


fbcyborg
10-09-2005, 14:30
Per favore ho assolutamente bisogno di una semplice guida per mettere il risultato di una qwery sotto forma di matrice in una JTable. NON ci riesco nonostante abbia provato anche a seguire le indicazioni di JFC/Swing tutorial...

grazie mille..

kingv
10-09-2005, 19:12
puoi fare qualcosa del genere:


ResultSet rs = statement.executeQuery("select colonna1,colonna2 from mytable");


DefaultTableModel dtm = (DefaultTableModel) jtable.getModel();
dtm.setColumnIdentifiers("colonna1","colonna2");

while(rs.next())
{
Object[] objects = new Object[2]; //l'array deve essere grande quanto le colonne ritornate dalla query
for(int i=0;i<2;i++)
objects[i]=rs.getObject(i+1);

dtm.addRow(objects);
}
jtable.setModel(dtm);

Alexxio
10-09-2005, 19:21
posso vedere il programma completo?
con che db sei interfacciato?

fbcyborg
10-09-2005, 19:36
Ciao!!!
grazie ho risolto seguendo una guida su mokabyte. Cmq mi sto interfacciando con jdbc e oracle.

grazie ragazzi

fbcyborg
11-09-2005, 10:27
Mamma mia, con queste JTable risolvi un problema e se ne crea un'altro.
Vorrei sapere se queste benedette JTable sono dinamiche. X esempio: quando inizializzo tutti i componenti della gui, c'è anche la JTable. Io non voglio che la tabella si popoli di valori non appena si carica la gui (è l'unica cosa che riesco a fare) ma voglio che la tabella, la griglia insomma, si popoli quando premo un bottone. Ho visto però che c'è tutta una storia per creare un modello personalizzato, cosa che ho fatto, e che per riempire la tabella di valori bisogna fare

// MyTableModel extends AbstractTableModel
MyTableModel model = new MyTableModel(valori,nomiColonne);
JTable myTable = new JTable(model);

e in questo modo inizializzo la mia tabella e la metto nella GUI opportunamente.
Il problema è che se la mia tabella dev'essere aggiornata, per esempio tramite una query, non so come fare.... ho provato il metodo setValueAt(Object aValue, int row, int column) in una procedura di 2 for per le matrici, pensando che servisse per "ri"settare i valori di ogni singola cella, ma questo non avviene, poichè ho provato a creare una griglia 10x10 vuota, e non si riempe con quel metodo.
Boh!!!! non so più come fare.

kingv
11-09-2005, 11:39
le modifiche che apporti al tablemodel si propagano al componente grafico (cioè alla jtable).

se usi DefaultTableModel hai già i metodi add/deleteRow ecc.ecc.

fbcyborg
11-09-2005, 12:35
OK! ti ringrazio....
userò quello allora!!!!

ciaoo!