Warten auf Event

das-mo

Mitglied
Hi Leute,

Ich bin gerade dabei ein GO-Spiel zu schreiben und bin jetzt auf folgendes Problem gestoßen:

In meinem Frame wird der Spielzug durchgeführt und soll bis zu einem bestimmten Punkt laufen. An diesem Punkt soll das Programm so lange warten bis aus dem Panel "Spielbrett" das Mouseevent ausgelöst wird.

Ich habe bis jetzt folgenden Ansatz:
Java:
synchronized (this) {
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
Hier habe ich aber das Problem das ich von dem Panel Spielbrett aus nicht Frame.notify(); aufrufen kann, da es ja ein Objekt von dem Frame ist und es an sich nicht kennt.

LG das-mo
 
Eine InterrputedException ist für einen FEHLERFALL gedacht, nicht für einen gewollten Programmfluss... Warum implementierst du nicht einen Observer und implementierst deinen eigenen Event-Mechanismus.

Kann auch sein, dass ich nicht ganz verstanden habe, was du eig. willst...
 
Hm du müsstest schon ein wenig mehr Infos zur Verfügung stellen, damit man(also zumindest ich) versteht was du da so tüftelst 🙂

Prinzipiell würde ich sagen es reicht dir, dass du dich als MouseListener registrierst und dann auf die Ereignisse regierst. Wenn du dort dann anfängst mit Wait zu warten, dann blockierst du evtl. den Zeichenthread oder die Abarbeitung der Event-Queue und das ist nicht gut.

Versuch es also doch einfach mal ohne wait.
 
Also ich weiß nicht ob ich einfach zu blöd bin :-D
Also ich habe meine Methode wo der Ablauf für den Spielzug drinsteht und an einer Stelle brauch ich die Koordinaten von dem Mausklick.
Java:
class Frame
...
public void Spielzug()
{
tu dies
int X,Y;(Mausklick)
tu das
}
Der Mausklick wird aber in einem Panel registriert
Java:
class Panel
...

Mouselistener()...
e.getX/Y;

Versteht ihr so jetzt wo ich hänge^^
 

Zurück
Oben