Anonymer Klass Parameter übergeben

BlubBlub

Bekanntes Mitglied
Hi,
gibt es eine Möglichkeit einer Anonymen Klasse einen Parameter zu übergeben?
Speziell bezogen auf die bereits vorhanden Klassen "new WindowListener()" ,
"new Abstract Action()" etc?
Ich würde gerne sowas wie unten im Code angedeutet durchführen.
Innerhalb der anonymen WindowListener Klasse möchte ich auf die Methode
der Varialben myObject zugreifen.


Java:
public MyJFrame extends JFrame
{
        public MyJFrame()
       {
                MyObject myObject = new MyObject();

                addWindowListener(new WindowListener(myObject){

			@Override
			public void windowClosing(WindowEvent arg0) {
				myObject.anyMethod();	
			}
       }
}
 
Nein das geht so nicht, aber mache doch myObject einfach final, dann kannst du auch in der anonymen innerne Klasse darauf zugreifen! [c]final MyObject myObject = new MyObject();[/c] (oder als Instanzvariable anlegen!)
 
Hi,

es ist nicht immer ratsam eine Anonyme Klasse für Listener zu verwenden.

Wenn du ein Objekt mit dem Listener verbinden möchtest. Implementiere doch das Listener-Interface in deiner Komponente, überschreibe die windowClosing-Methode, lege eine private Instanz für das per Konstruktor übergebene Objekt.

Profitiere vom übersichtlicheren und eleganterem Code. Wenn du die Variable final machst, nimmst du dir die Flexibiltät raus. Wenn du allerdings auf die Flexibilität pfeifst...
 

Neue Themen


Zurück
Oben