JMenuItem

Status
Nicht offen für weitere Antworten.

ModellbahnerTT

Bekanntes Mitglied
Hallo,
wie kann ich Anweisungen ausführen wenn ein JMenuItem angeklickt wurde?
Momentan sieht es bei mir noch so aus:
Java:
JMenuItem item = new JMenuItem("Beenden");
item.addActionListener(new MActionListener());
/* weitere Items... */

class MActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        System.out.println("Infos: " + e.getID());
        System.out.println("Selected: " + e.getActionCommand());
    }
}
Per getID() wird immer das selbe bei mehreren, unterschiedlichen Items ausgegeben.
Per getActionCommand() wird ja ein String zurückgegeben,
jedoch wäre es unlöglich die Items per switch mit String abzufangen oder?
 

Michael...

Top Contributor
getID liefert nur einen int bzgl. der Art des Ereignisses, da Du in zumindest in dem Bsp jedesmal einen neuen ActionListenener erstellst und zuweist kannst Du ja pro Item einen eigenen verwenden. Sonst kann man z.B. per if und getActionCommand herausfinden welches Element das Ereignis feuert oder man kann sich selbst was basteln
 

Schandro

Top Contributor
Du weist jedem Item seinen eigenen ActionListener zu:
Java:
item1.addActionListener(new ActionListener(){
	@Override
	public void actionPerformed(ActionEvent e) {
		// item1 wurde gedrückt
	}
});
item2.addActionListener(new ActionListener(){
	@Override
	public void actionPerformed(ActionEvent e) {
		// item2 wurde gedrückt
	}
});

Falls ein paar der items das gleiche machen wollen, kannst du auch einen ActionListener in einer Variable speichern und dann mehreren zuweisen, bspw. so:

Java:
ActionListener printListener = new ActionListener(){
	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("ich druck mal was...");
	}
});

item1.addActionListener(printListener);
item2.addActionListener(printListener);
 
S

SlaterB

Gast
wenn im String eine Zahl steht kannst du einen int parsen und den switchen,
wenn alle MenuItems oder deren ActionCommands in einer Liste/ einem Array stehen kannst du darüber iterieren und so einen Index erhalten, über den geswitcht werden könnte,

aber if/ else ist da doch einfacher solange Java kein switch über Strings kennt ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
J Swing JMenuItem blockiert JMenuBar AWT, Swing, JavaFX & SWT 2
F JMenuItem mit KeyStroke kombinieren AWT, Swing, JavaFX & SWT 1
javampir Look&Feel von JMenuItem AWT, Swing, JavaFX & SWT 3
M JMenuBar, JMenu, JMenuItem wird nicht angezeigt AWT, Swing, JavaFX & SWT 16
K JMenuItem-Shortcut WENN Menüleiste verborgen ist AWT, Swing, JavaFX & SWT 4
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
J Swing JMenuItem-Event?? AWT, Swing, JavaFX & SWT 3
J Swing JMenuItem auf setEnabled(false) setzen? AWT, Swing, JavaFX & SWT 3
B JMenuItem Anzeigeproblem AWT, Swing, JavaFX & SWT 6
E Swing JTextField als JMenuItem AWT, Swing, JavaFX & SWT 3
G PopupMenu für ein JmenuItem AWT, Swing, JavaFX & SWT 3
N Swing Nimbus arbeitet nicht korrekt korrekt bei setEnabled() für JMenuItem AWT, Swing, JavaFX & SWT 2
F JMenuItem exit AWT, Swing, JavaFX & SWT 2
M Swing JMenuItem und der ActionListener AWT, Swing, JavaFX & SWT 2
S Probleme mit JMenu und JMenuItem AWT, Swing, JavaFX & SWT 2
sylo Position des Icons bei JMenuItem AWT, Swing, JavaFX & SWT 11
Semox Swing JMenuItem-Auswahl mit Aktion ausführen AWT, Swing, JavaFX & SWT 4
pinerski Probleme mit JPopupMenu und JMenuItem AWT, Swing, JavaFX & SWT 7
T Problem mit KeyStroke auf JMenuItem (1.4.2 <-> 6) AWT, Swing, JavaFX & SWT 3
T Von JMenuItem setText auf JButton AWT, Swing, JavaFX & SWT 2
O Verstehe ActionListener in Verbindung mit JMenuItem AWT, Swing, JavaFX & SWT 4
G JMenuItem und Accelerator AWT, Swing, JavaFX & SWT 14
Iron Monkey JPopupMenu/JMenuItem Index für getSubElements()[] ermitteln AWT, Swing, JavaFX & SWT 8
0 JMenuItem nicht in zwei JMenus möglich? AWT, Swing, JavaFX & SWT 2
G JMenuItem & AbstractAction = Problem? AWT, Swing, JavaFX & SWT 2
G identische JMenuItem im actionListener unterscheiden AWT, Swing, JavaFX & SWT 4
F ID zu JMenuItem AWT, Swing, JavaFX & SWT 7
A Bei Klick auf disabled JMenuItem JMenu nicht schließen AWT, Swing, JavaFX & SWT 2
Z JMenuItem AWT, Swing, JavaFX & SWT 2
C JMenuItem ActionListener AWT, Swing, JavaFX & SWT 26
DeeDee0815 F-Taste auf JMenuItem legen AWT, Swing, JavaFX & SWT 2
padde479 JMenuItem mit Image AWT, Swing, JavaFX & SWT 2
P JMenu / JMenuItem durch Rekursion Icons entfernen AWT, Swing, JavaFX & SWT 4
S java.lang.verifyError beim Casten nach JMenuItem AWT, Swing, JavaFX & SWT 13
B ActionListener JMenuItem AWT, Swing, JavaFX & SWT 2
B JMenuItem AWT, Swing, JavaFX & SWT 2
S Öffnen eines JDialog über JMenuItem / Fenster zu viel. AWT, Swing, JavaFX & SWT 2
T JMenu/JMenuItem Component auf der geaddet wurde AWT, Swing, JavaFX & SWT 16
G JMenu About ohne JMenuItem AWT, Swing, JavaFX & SWT 11
G Freiraum bei JMenuItem mit Icon AWT, Swing, JavaFX & SWT 4
B ActionListener/JMenuItem/getSource() . AWT, Swing, JavaFX & SWT 5
F Darstellung von Tastaturkürzel in JMenuItem AWT, Swing, JavaFX & SWT 13
Z JMenu und JMenuItem: MouseOver-Farbe ändern AWT, Swing, JavaFX & SWT 9
J JMenuItem und ActionListener AWT, Swing, JavaFX & SWT 3
B Häkchen bei JMenuItem? AWT, Swing, JavaFX & SWT 6
B Alle jMenu und JMenuItem in einem Array AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben