Tag auch
So nun habe ich folgendes Problem. Ich hab ein Swing GUI gebaut, da einen Button für Offline/Online gehen des Servers gebastelt. Mein Server geht schön Online. weil wenn der Server(Thread) instanziiert wurde, läuft er ja. Problem ist jetzt das wait();. Sobald das ausgeführt wird bleibt er ja dort hängen und wartet bis es weiter geht.
Ich hab eine Main.java Hauptfenster.java und Server.java
Main ist für das starten des Hauptfensters zuständig.
Hauptfenster ist das GUI, welches eine Objekt von Server hat.
Und Server ist da oben zu sehen (ein Teil davon).
So, ich dachte mir, dass ich es so aufteile und das GUI arbeiten lasse mit dem Thread. Ich weiss auch wo mein Problem liegt. Das drücken des Buttons muss eine vollständige Ausführung beinhalten. Das heißt, dass das wait von etwas anderen ausgeführt werden muss was wiederum ein Thread ist. Gibts da nicht noch ne bessere Lösung?
Gruß erZ
Code:
public void setOnline() {
online = true;
synchronized(this) {
this.notifyAll();
}
}
public void setOffline() {
online = false;
try {
synchronized(this) {
System.out.println("1");
this.wait();
System.out.println("1");
}
} catch(java.lang.InterruptedException e) {
System.out.println("Fehler beim Offline gehen des Server.");
}
}
public void run() { .... }
So nun habe ich folgendes Problem. Ich hab ein Swing GUI gebaut, da einen Button für Offline/Online gehen des Servers gebastelt. Mein Server geht schön Online. weil wenn der Server(Thread) instanziiert wurde, läuft er ja. Problem ist jetzt das wait();. Sobald das ausgeführt wird bleibt er ja dort hängen und wartet bis es weiter geht.
Ich hab eine Main.java Hauptfenster.java und Server.java
Main ist für das starten des Hauptfensters zuständig.
Hauptfenster ist das GUI, welches eine Objekt von Server hat.
Und Server ist da oben zu sehen (ein Teil davon).
So, ich dachte mir, dass ich es so aufteile und das GUI arbeiten lasse mit dem Thread. Ich weiss auch wo mein Problem liegt. Das drücken des Buttons muss eine vollständige Ausführung beinhalten. Das heißt, dass das wait von etwas anderen ausgeführt werden muss was wiederum ein Thread ist. Gibts da nicht noch ne bessere Lösung?
Gruß erZ