JMenu ActionListener reagiert nicht?

Extremefall

Bekanntes Mitglied
Hallo,
ich habe eine GUI, wo ich ein JMenu erstelle und dieses dann zu einer JMenuBar hinzufüge. Natürlich lege ich vorher den ActionListener auf eine innere Klasse fest:
Java:
JMenu config = new JMenu("Einstellungen");
config.addActionListener(new EventHandler());
...
menubar.add(config);
frame.setJMenuBar(menubar);
...
class EventHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
	System.out.println(e);
		if (e.getSource()==config){
                System.out.println("AUsgabe");
                }
        }
}
Es wird leider nichts in der Konsole ausgegeben. Woran mag das liegen und wie kann ich das Problem lösen? Ich habe auch noch mehrere Buttons, die eine Instanz der EventHandler Klasse erzeugen und dort funktioniert es problemlos.
 
Ich habe nur eine config Variable. Habe es nun mit einem JMenuItem probiert und da klappt es. Auch mit this bei der GUI Klasse ging es nicht. Ich nutze wohl lieber JMenuItem. Kann es sein, dass JMenu mit dem ActionListener nicht kompatibel ist? Das Problem habe ich nämlich schon öfter in Foren gelesen,
 
Wie der Name schon sagt, ist ein JMenuItem ein MenüEINTRAG, wohingegen JMenu eine Art Kontainer für Menüeinträge ist. Ein JMenu kann beliebig viele Einträge haben, aber auch beliebig viele Untermenüs... d.h. du kannst zwar auf ein Menü einen Listener setzen, aber der gilt dann nicht für die einzelnen Einträge (wann der nun allerings tatsächlich ausgelöst wird, entzieht sich auch meiner Kenntnis)
 
Naja macht ja auch irgendwie Sinn^^

Die JMenuBar ist in Kategorien unterteilt (JMenu) , diese wiederum enthalten entweder Unterkategorien oder das eigentliche Objekt, welches ausgeführt werden kann(JMenuItem).

Ich persönlich sehe keinen Sinn, den Kategorien einen Actionlistener zu verpassen.
Für derartige Zwecke gibt es andere passendere Mittel.

Gruß Vanny

Mist, das Obst war schneller 😛
 

Zurück
Oben