Ciao a tutti,
Ho un problema con una jTable...
Io prima eseguo una SELECT in un database, e poi cerco di inserire il risultato in una jTable.
La query funziona perfettamente e se stampo i vettori con println, non c'è nesun problema (DOVE HO SCRITTO ******* QUI ******* nel commento del codice)....
Quando invece li inserisco in tabella, vedo lo stesso vettore ripetuto n volte....
codice:
class ItemChangeListener implements ItemListener{
public void itemStateChanged(ItemEvent e){
if (e.getStateChange() == ItemEvent.SELECTED){
cant = e.getItem().toString();
try {
Connection con = DriverManager.getConnection(URL);
SQL = "Select Ore FROM Cantiere where nome = '" + cant + "'";
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(SQL);
rs.next();
ore.setText(rs.getString("Ore"));
Connection conn = DriverManager.getConnection(URL);
Statement sstm = conn.createStatement();
SQL = "SELECT materiale.Codice , materiale.Descrizione , acquisto.tot , materiale.mef, materiale.luc, materiale.alt , bolla.ditta FROM materiale,acquisto,cantiere,bolla WHERE materiale.Codice = acquisto.cod AND acquisto.nbo = bolla.num AND bolla.Cantiere = '" + cant + "'";
ResultSet nrs = sstm.executeQuery(SQL);
Vector v = new Vector();
int j = 0 ;
data.setRowCount(0);
while(nrs.next()){
v.clear();
v.add(nrs.getString("materiale.Codice"));
v.add(nrs.getString("materiale.Descrizione"));
v.add(nrs.getString("acquisto.tot"));
if (nrs.getString("bolla.ditta").equals("Lucciola")){
v.add(nrs.getString("materiale.luc"));
} else if (nrs.getString("bolla.ditta").equals("Meff")) {
v.add(nrs.getString("materiale.mef"));
} else {
v.add(nrs.getString("materiale.alt"));
}
// *********** QUI ****************
data.addRow(v);
j++;
}
jTable1.setModel(data);
con.close();
conn.close();
} catch (SQLException ex) {
Logger.getLogger(vis_cantiere.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Dove sto' sbagliando??? Mi sembra assurdo....