matteo p.
29-01-2012, 18:52
Salve a tutti!
Ho un problema che non riesco a risolvere, ho provato anche a googlare e a cercare qui, ma non ho trovato niente, o, meglio, niente che risolva il mio problema :P
Avrei bisogno che in un JTextField, ad ogni lettera digitata si effettui una query di ricerca e che riaggiorni la tabella.
Ho fatto cosė, ma -ovviamente- non funziona :D
// metodo che esegue la query e aggiorna la tabella
public void popola(String query) {
ResultSet rs = db.eseguiQuery(query);
try {
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
// definisco il modello della tabella
String[] tableColumnsName = {"Codice","Tessera","Nome","Cognome"};
DefaultTableModel aModel = (DefaultTableModel) taBBella.getModel();
aModel.setColumnIdentifiers(tableColumnsName);
// trasferimento sul modello
int colNo = rsmd.getColumnCount();
while(rs.next()){
Object[] objects = new Object[colNo];
for(int i=0;i<colNo;i++){
objects[i]=rs.getObject(i+1);
}
aModel.addRow(objects);
}
taBBella.setModel(aModel);
} catch(SQLException e) {
}
}
// il document listener sulla texfield 'cerca'
cerca.getDocument().addDocumentListener(new DocumentListener(){
public void changedUpdate(DocumentEvent e){check();}
public void removeUpdate(DocumentEvent e){check();}
public void insertUpdate(DocumentEvent e){check();}
});
// metodo 'check' che esegue il listener
public void check() {
String getcampo = " '" + cerca.getText() + "%' ";
String campo = "SELECT * FROM tabella_clienti WHERE 'nome' LIKE " + getcampo + ";"; //esempio di ricerca
popola(campo);
}
Qualcuno sa dirmi dove sbaglio?
Grazie in anticipo.
Saluti! :D
Ho un problema che non riesco a risolvere, ho provato anche a googlare e a cercare qui, ma non ho trovato niente, o, meglio, niente che risolva il mio problema :P
Avrei bisogno che in un JTextField, ad ogni lettera digitata si effettui una query di ricerca e che riaggiorni la tabella.
Ho fatto cosė, ma -ovviamente- non funziona :D
// metodo che esegue la query e aggiorna la tabella
public void popola(String query) {
ResultSet rs = db.eseguiQuery(query);
try {
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
// definisco il modello della tabella
String[] tableColumnsName = {"Codice","Tessera","Nome","Cognome"};
DefaultTableModel aModel = (DefaultTableModel) taBBella.getModel();
aModel.setColumnIdentifiers(tableColumnsName);
// trasferimento sul modello
int colNo = rsmd.getColumnCount();
while(rs.next()){
Object[] objects = new Object[colNo];
for(int i=0;i<colNo;i++){
objects[i]=rs.getObject(i+1);
}
aModel.addRow(objects);
}
taBBella.setModel(aModel);
} catch(SQLException e) {
}
}
// il document listener sulla texfield 'cerca'
cerca.getDocument().addDocumentListener(new DocumentListener(){
public void changedUpdate(DocumentEvent e){check();}
public void removeUpdate(DocumentEvent e){check();}
public void insertUpdate(DocumentEvent e){check();}
});
// metodo 'check' che esegue il listener
public void check() {
String getcampo = " '" + cerca.getText() + "%' ";
String campo = "SELECT * FROM tabella_clienti WHERE 'nome' LIKE " + getcampo + ";"; //esempio di ricerca
popola(campo);
}
Qualcuno sa dirmi dove sbaglio?
Grazie in anticipo.
Saluti! :D