Hallo,
ich habe leider immer noch ein Verständnisproblem bzgl. des Event-Dispatch-Threads. Angenommen, ich möchte bei einem Knopfdruck Daten aus einer Datenbank lesen und dem Benutzer dies vorher mitteilen, dann würde der Code folgendermaßen aussehen:
Nun würde die Ausgabe "Es werden Daten gelesen" aber erst *nach* Beendigung der DB-Anfrage erscheinen. Daher müsste man wohl mit Hilfe eines zusätzlichen Threads die DB-Anfrage entkoppeln:
Dies ist für meine Begriffe aber äußerst unschön. Gibt es keine andere (="sauberere") Möglichkeit, das GUI aus dem Event-Dispatch-Thread zu aktualisieren?
Gruß,
AMiGA
ich habe leider immer noch ein Verständnisproblem bzgl. des Event-Dispatch-Threads. Angenommen, ich möchte bei einem Knopfdruck Daten aus einer Datenbank lesen und dem Benutzer dies vorher mitteilen, dann würde der Code folgendermaßen aussehen:
Code:
public void actionPerformed(ActionEvent evt) {
textField.setText("Es werden nun Daten aus der DB gelesen");
Database.execQuery("...");
textField.setText("Anfrage erfolgreich");
}
Nun würde die Ausgabe "Es werden Daten gelesen" aber erst *nach* Beendigung der DB-Anfrage erscheinen. Daher müsste man wohl mit Hilfe eines zusätzlichen Threads die DB-Anfrage entkoppeln:
Code:
public void actionPerformed(ActionEvent evt) {
textField.setText("Es werden nun Daten aus der DB gelesen");
new Thread() {
public void run() {
Database.execQuery("...");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
textField.setText("Anfrage erfolgreich");
}
}
}.start();
}
Dies ist für meine Begriffe aber äußerst unschön. Gibt es keine andere (="sauberere") Möglichkeit, das GUI aus dem Event-Dispatch-Thread zu aktualisieren?
Gruß,
AMiGA