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..
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);
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.
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!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.