Hallo,
ich arbeite mich grade in Java ein und habe volgendes Problem, ich habe ein Fenster welches zum senden ein Periodisches Signal senden soll. Da während solange gesendet wird keine Eingabe erfolgen darf habe ich einen Modalen Dialog erstellt der das Fenster sperrt. Wenn der Dialog geschlossen wird, wird das Signal beendet und das Programm soll normal weiter laufen.
Mein Lösungsansatz war einen parralel Laufenden Thread zu erstellen der von einem Button im Hauptfenster gestartet wird. Beim Drücken des Buttons wird ebenfalls der Dialog Aufgerufen, wenn das Programm aus dem Dialog wieder zurückkhert wird der Sende Threat wieder gestoppt.
Das Problem ist nun das mit aufrufen des Modalen Dialogs nicht nur der Haupt Thread (in dem das Fenster läuft) angehalten wird sondern auch der Sende Thread so das er zwar aus dem Wartezustand rausspringt jedoch nicht weiter läuft bis der Dialog wieder geschlossen wird und den Thread eh stoppt. Hat jemand eine Lösung?
Hier der Code:
Action Listener der von der GUI aufgerufen wird:
Sende Thread:
Danke für eure Hilfe
Gruß André
ich arbeite mich grade in Java ein und habe volgendes Problem, ich habe ein Fenster welches zum senden ein Periodisches Signal senden soll. Da während solange gesendet wird keine Eingabe erfolgen darf habe ich einen Modalen Dialog erstellt der das Fenster sperrt. Wenn der Dialog geschlossen wird, wird das Signal beendet und das Programm soll normal weiter laufen.
Mein Lösungsansatz war einen parralel Laufenden Thread zu erstellen der von einem Button im Hauptfenster gestartet wird. Beim Drücken des Buttons wird ebenfalls der Dialog Aufgerufen, wenn das Programm aus dem Dialog wieder zurückkhert wird der Sende Threat wieder gestoppt.
Das Problem ist nun das mit aufrufen des Modalen Dialogs nicht nur der Haupt Thread (in dem das Fenster läuft) angehalten wird sondern auch der Sende Thread so das er zwar aus dem Wartezustand rausspringt jedoch nicht weiter läuft bis der Dialog wieder geschlossen wird und den Thread eh stoppt. Hat jemand eine Lösung?
Hier der Code:
Action Listener der von der GUI aufgerufen wird:
Code:
synchronized(Emerg_Stop.syn){
Emerg_Stop.stop = false;
Emerg_Stop.syn.notify();
ModalDialog.OKDialog(gui,"Not Aus beenden");
Emerg_Stop.stop = true;
Sende Thread:
Code:
public void run(){
synchronized(syn){
while(alive){
if(stop){
syn.wait();
} else {
dsock.send(packet);
Thread.sleep(1000);
}
}
}
}
Danke für eure Hilfe
Gruß André