Hi Leute,
ich stehe grade mal wieder auf dem Schlauch. Ich habe ein Tool gebastelt welches Performance Daten in eine Datenbank schreibt.
Das Tool habe ich eine Swing Gui verpasst, wechle 2 JButtons (Start und Stop) und eine JTextArea verpasst (für Statusausgaben).
Der Button Start ruft über den Action Listener eine Methode "run()" auf welche in einer while Schleife Objekte erzeugt, die die Perfromance Daten abruft und in die Datenbank schreibt.
Wenn ich das ganze nun Starte läuft im Hintergrund alles ok, sprich alle Daten werden abgerufen und in die Datenbank geschrieben. Jedoch bleibt die Gui immer hänger.
Hier etwas Code
Nur wieso bleibt die Gui hängen wenn ich auf Start drücke? Wenn ich die while Schleife weglasse in run() bleibt die Gui nicht hänge, das ganze läuft aber nur einmal durch.
Danke und Grüße
ich stehe grade mal wieder auf dem Schlauch. Ich habe ein Tool gebastelt welches Performance Daten in eine Datenbank schreibt.
Das Tool habe ich eine Swing Gui verpasst, wechle 2 JButtons (Start und Stop) und eine JTextArea verpasst (für Statusausgaben).
Der Button Start ruft über den Action Listener eine Methode "run()" auf welche in einer while Schleife Objekte erzeugt, die die Perfromance Daten abruft und in die Datenbank schreibt.
Wenn ich das ganze nun Starte läuft im Hintergrund alles ok, sprich alle Daten werden abgerufen und in die Datenbank geschrieben. Jedoch bleibt die Gui immer hänger.
Hier etwas Code
Java:
public void run() {
while(getStatus()){ //Solange der Globale Status "true" ist soll die Schleife laufen, -> beim Drücken des StartButtuns wird der Status auf ture gesetzt, beim Drücken des Stop Buttons auf false und die Schleife soll nach dem Beenden des Durchlaufs Stoppen
//Objekte die die Algorithmik enthalten werden aufgerufen
DS4000Collector ds4101 = new DS4000Collector(this.getTaStatus(),DS4101, "DS4101");
DS4000Collector ds4102 = new DS4000Collector(this.getTaStatus(),DS4102, "DS4102");
}
}
class AMAL implements ActionListener {
public void actionPerformed(ActionEvent ae) {
Object object = ae.getSource();
if(object == buttonStart) {
setStatus(true); // Hier wird der Status gesetzt, die while Schleife in run() soll laufen
getStopButton().setEnabled(true); //Stop Button wird freigeschaltet
getStartButton().setEnabled(false); //Start Button wird abgeschlaltet (die while schleife soll ja laufen)
run();
}
if (object == buttonStop) {
setStatus(false); //Hier wird der Status auf false gesetzt, die while schliefe in run() soll stoppen
getStartButton().setEnabled(true);Start Button wird wieder freigeschaltet
getStopButton().setEnabled(false);// ...
}
}
}
Nur wieso bleibt die Gui hängen wenn ich auf Start drücke? Wenn ich die while Schleife weglasse in run() bleibt die Gui nicht hänge, das ganze läuft aber nur einmal durch.
Danke und Grüße