EDIT (NEU):Populate Kombinationsfeld mit Tabellenwerte
haben noch nicht herausgefunden, wie die cboxCustomers
zu füllen. Ich war die letzten ein oder zwei Tage dabei, aber ohne Glück.
Falls kann jemand helfen: http://pastebin.com/e5wibRYw
ich von cats
zu customers
ging, btw.
versuchte ich Mr. Xymon's
Ansatz, aber habe es nicht richtig zu implementieren, da es nicht funktioniert.
Was Ereignis ich die Bevölkerung zu behandeln pflegte ich bekam immer NullPointerException
für jede Art Steuer/Veranstaltung, die ich versuchte, zu verwenden.
OLD:
Es gibt eine
JForm
. Darauf gibt es ein einzelnes Kombinationsfeld. Haben Sie auch einen einzigen Tisch mit Katzen -
cats
. Jede Katze hat
id
und
catName
.
Was ich tun wollte, war, als ich auf das Kombinationsfeld klicken, so dass es, füllen Sie es mit allen id
von Katzen erweitern, die in cats
Tabelle zu finden sind.
sloved. Asnwer unten. Leider erhalte ich zahlreiche unreported exception java.sql.SQLException
von den Linien I mit >
angegeben haben:
private void cboxCatsMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
// create an array list to be filled with cat's ids
ArrayList<String> cats = new ArrayList<String>();
String query = "SELECT id FROM cats ORDER BY id";
>java.sql.PreparedStatement stm = connection.prepareStatement(query);
>ResultSet rs = stm.executeQuery(query);
>while(rs.next()){
>String cat = rs.getString("id");
// add cat's ids tp the array list
cats.add(cat);
}
>rs.close();
// populate the combo box
DefaultComboBoxModel model = new DefaultComboBoxModel(cats.toArray());
cboxCats.setModel(model);
}
ALTE ANTWORT:
Ich glaube, ich es fest. Ich musste nur alle markierten Codezeilen in eine große try-catch
-Anweisung zusammenfassen, die SQLException
fangen würde. Problem ist - das Kombinationsfeld wird nicht mit id
Werten gefüllt, wenn ich es erweitere. Warum das? Benutze ich das falsche Ereignis?
Veröffentlichen Sie bitte den vollständigen Ausnahmetext. Außerdem sollten Sie alle Datenbankabfragen in einem Hintergrund-Thread durchführen, wie er von einem SwingWorker-Objekt bereitgestellt wird. –
In Bezug auf Ihre Bearbeitung: Auch hier sollten Sie alle Datenbankabfragen in einem Hintergrundthread durchführen. Warum versuchen Sie, die Combobox auf mouseClick zu füllen, da das keinen Sinn macht. Es wird Zeit brauchen, um die Datenbank abzufragen, und es wird wahrscheinlich Swings Fähigkeit stören, das Kombinationsfeld zu öffnen. Warum füllen Sie die Combobox nicht im Voraus aus? –
Ja. Das macht mehr Sinn. Vielen Dank. – Bob