AbstractAction()

Ama

Mitglied
Hallo Community...;)
Hab mal ne Frage an euch:

In dem Programm hab ich mir eine JMenuBar erstellt und wollte sie befüllen mit (JMenu)Datei, Bearbeiten, ...hab ich gemacht und anschließend wollte ich die JMenu noch mit JMenuItems befüllen, bin aber dann auf (siehe Programmcode) gestoßen und so funktioniert das ganze auch.
Jetzt stellt sich mir die Frage was ich hier eigentlich mache?

Java:
Action neu = new AbstractAction() 
		{
			{
				this.putValue(Action.NAME,  "Neu STRG + N" );
			}
			public void actionPerformed( ActionEvent e ) 
			{
			    ....
			}
		};
		datei.add(neu);

mich würde es interessieren was "new AbstractAction()" macht?
erstelle ich hier immer eine neue "Klasse"...?
Ist
Java:
{
	this.putValue(Action.NAME,  "Neu STRG + N" );
}
der Konstruktor der AbstractAction-Klasse?

anders kann man es ja auch lösen:
Java:
JMenu neu = new JMenu("Neu")
datei.add(neu);
datai.setActionListener(this)

aber um das geht es mir nicht!
würde gerne mehr Infos über die Klasse AbstractAction() erfahren!

danke im voraus..;)
Grüße Ama
 

Michael...

Top Contributor
mich würde es interessieren was "new AbstractAction()" macht?
erstelle ich hier immer eine neue "Klasse"...?
Hier wird eine anonyme innere Klasse vom Typ AbstractAction definiert und mit new wird ein Objekt dieser Klasse erstellt.
Ist
Java:
{
	this.putValue(Action.NAME,  "Neu STRG + N" );
}
der Konstruktor der AbstractAction-Klasse?
Nein, der Code wird aber beim Erstellen eines Objektes ausgeführt.
Gleiche könnte man übrigens auch mit folgendem Code errreichen.
Java:
Action neu = new AbstractAction("Neu STRG + N") {
	public void actionPerformed(ActionEvent e) {
		...
	}
};

anders kann man es ja auch lösen:

Java:
JMenu neu = new JMenu("Neu")
datei.add(neu);
datai.setActionListener(this)
Ja, wenn die Methode addActionListener(...) heißen würde und die Klasse von this das Interface ActionListener implementiert.
würde gerne mehr Infos über die Klasse AbstractAction() erfahren!
Lesen ;-) wüsste jetzt aber spontan nicht wo... aber Internet und Suchmaschinen helfen da bestimmt weiter.
 

Ähnliche Java Themen

Neue Themen


Oben