G
Guest
Gast
Hallo,
ich erstelle gerade ein Programm, welches auf eine Datenbank zugreift. Der Datenbankzugriff wird in einem thread abgehandelt. Ichhabe links einen JTree und durch einer Sleketion eines Blattes wird die entsprechende Abfrage gestartet. Momentan kann diese Abfrage nicht unterbrochen werden, da ich den JTree danach enable(false) setze. Nun möchte ich aber, das er enabled bleibt und sobald man auf ein anders Blatt klickt, diese Abfrage ausgeführt wird. Bis jetzt wird dann aber ein zweiter Thread erstellt und der "zerschießt" mir dann mein Erebniss, weil ich in dem programm mit den Werten nachher weiterrechne.
Der Code mal auszugsweise:
Das "model" ist dabei eine Klassenvariable. Wie kann ich es jetzt erzwingen, dass kein neuer Thread erzeugt wird, sondern nur einer besteht, bzw wie kann ich diesen einen Thread stoppen, bevor der andere wieder eine Datenbankabfrage abschicken kann.
ich erstelle gerade ein Programm, welches auf eine Datenbank zugreift. Der Datenbankzugriff wird in einem thread abgehandelt. Ichhabe links einen JTree und durch einer Sleketion eines Blattes wird die entsprechende Abfrage gestartet. Momentan kann diese Abfrage nicht unterbrochen werden, da ich den JTree danach enable(false) setze. Nun möchte ich aber, das er enabled bleibt und sobald man auf ein anders Blatt klickt, diese Abfrage ausgeführt wird. Bis jetzt wird dann aber ein zweiter Thread erstellt und der "zerschießt" mir dann mein Erebniss, weil ich in dem programm mit den Werten nachher weiterrechne.
Der Code mal auszugsweise:
Code:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Thread appThread = new Thread() {
public void run() {
klasse.datenbankabfrage(model)
}
};
appThread.start();
}
});
Das "model" ist dabei eine Klassenvariable. Wie kann ich es jetzt erzwingen, dass kein neuer Thread erzeugt wird, sondern nur einer besteht, bzw wie kann ich diesen einen Thread stoppen, bevor der andere wieder eine Datenbankabfrage abschicken kann.