Hallo zusammen
Ich bastele an einem Menü und komme nicht bei der Weiterleitung von ActionEvents weiter, die gefeuert werden, wenn ich einen Menüpunkt auswähle.
In den Java Tuts gibt es zwar ein Beispiel, dazu. :rtfm: Das hilft mir nicht viel weiter, weil ich nicht ganz herausbekomme, wie ich nun das erzeugte Objekt source (in meinem Sourcecode) dazu benutzen kann, um dann eine bestimme Aktion auszuführen.
Wenn ich wie in meinem Beispiel nun auf "Programm beenden" klicke, dann passiert gar nichts. Es scheint so, als würde da nicht mal mitbekommen werden, daß eine Klickaktion erfolgt ist.
Wie kann ich nun eine Methode dem ausgewählten Item zuweisen? In der actionPerformed() oder der itemStateChanged() Methode?
Grüße,
Semo
Ich bastele an einem Menü und komme nicht bei der Weiterleitung von ActionEvents weiter, die gefeuert werden, wenn ich einen Menüpunkt auswähle.
In den Java Tuts gibt es zwar ein Beispiel, dazu. :rtfm: Das hilft mir nicht viel weiter, weil ich nicht ganz herausbekomme, wie ich nun das erzeugte Objekt source (in meinem Sourcecode) dazu benutzen kann, um dann eine bestimme Aktion auszuführen.
Wenn ich wie in meinem Beispiel nun auf "Programm beenden" klicke, dann passiert gar nichts. Es scheint so, als würde da nicht mal mitbekommen werden, daß eine Klickaktion erfolgt ist.
Java:
[...]
public JMenuBar createMenuBar() {
// Create the menu bar.
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("Datei");
// Set Mnemonics
file.setMnemonic(KeyEvent.VK_D);
//Add Listeners
file.addActionListener(this);
//Item Listeners
exit.addItemListener(this);
JMenuItem exit = new JMenuItem("Programm beenden");
file.add(exit);
}
[...]
protected void actionPerformed(ActionEvent event) {
JMenuItem source = (JMenuItem)(event.getSource());
if (source.getText() == "Programm beenden") {
System.out.println("Beenden1");
System.exit(0);
}
}
@Override
protected void itemStateChanged(ItemEvent state) {
JMenuItem source = (JMenuItem)(state.getSource());
if (source.getText() == "Programm beenden") {
System.out.println("Beenden2");
System.exit(0);
}
Wie kann ich nun eine Methode dem ausgewählten Item zuweisen? In der actionPerformed() oder der itemStateChanged() Methode?
Grüße,
Semo