Java Event Handling

haraldSol

Grünschnabel
Servus zusammen,

ich habe mal eine Frage bzgl. Java Event Handling!
Ich kenne es aus C/C++ hab in Java aber noch kein Codebspl gefunden, wie ich aus Klasse A ein Event in Klasse B auslösen kann.

Code:
class A  
{

 SendEvent(e1); // so eine Methode könnte ich mir hier vorstellen die dann das Event in Klasse B auslöst
}

class B implements ActionListener
{

public void actionPerformed()
{
   //hier dann auf das ausgelöste Event reagieren
}

}


Habt ihr tipps wie ich das realisieren kann, oder muss ich ggf. mit Übergabeparametern arbeiten?
 
In Java läuft das über Callback-Methoden und Listenern. Schau dir mal das Observer/Beobachter-Pattern an, ansonsten poste ich auch gern ein Beispiel.
 
Normalerweise wird ein Event nicht manuell gesendet, das wird von den Steuerelementen übernommen inkl. des Parameters, welcher nützliche Informationen enthält, die man in der Funktion auswerten kann, wenn man sie braucht.
Stattdessen wird das Event einfach registriert.

Beispiel:
Java:
class A //GUI
{
	//...
		myButton.addActionListener(new B);
	//...
}

class B implements ActionListener //EventHandler
{
	public void actionPerformed(ActionEvent ae) 
	{
		System.out.println("Button wurde gedrückt!");
	}
}

Den EventHandler in eine eigene Klasse auszulagern ist meiner Meinung nach jedoch ziemlich selten. Häufiger wird entweder ein Adapter oder die Klasse als EventHandler selbst verwendet.

Beispiel:
Java:
class A implements ActionListener
{
	//...
		myButton.addActionListener(this);
	//...

	public void actionPerformed(ActionEvent ae) 
	{
		System.out.println("Button wurde gedrückt!");
	}
}
 
Ach fällt mir grad ein... Willst du eigene Events basteln oder suchst du nur Tutorials im Umgang mit bereits existierenden Events, wie z.B. für Buttons?
 
Wie gesagt, schau dir dann das Observer-/Beobachter-Pattern an. Ich bin grad auf der Arbeit, kann daher kein Beispiel zusammentackern. Hab aber was gefunden, da sind mehrere Möglichkeiten aufgeführt. Da wird gezeigt, wie man das komplett selbst macht oder halt durch Verwendung diverser Klassen, die Java extra dafür bereits mitbringt. Ich persönlich bevorzuge das Selbermachen, die fertigen Klassen sind nicht so mein Fall, aber das muss jeder für sich wissen. Jedenfalls sind alle Beispiele gut zum Lernen.

Und hier der Link: klick
 
Zurück