MenuItems in MenuBar mit MenuShortCut belegen

blotte

Mitglied
Ich habe in meiner MenuBar das MenuItem "Beenden".
Hier möchte ich nach möglichkeit einen shortcut hinzufügen: bspw.: Strg+e

bisher sieht der MenuEintrag so aus:

Code:
    dieMenuleiste = new JMenu("Datei");
    miBeenden = new JMenuItem("Beenden");
    miBeenden.setActionCommand("Beenden");
    miBeenden.addActionListener(aa);
    dieMenuleiste.add(miBeenden);
    add(dieMenuleiste);


-meiner Meinung nach müsste ich auf jeden fall einen KeyListener hinzufügen

- und den Code folgendermaßen ändern:

miBeenden = new JMenuItem("Beenden", new MenuShortCut(KeyEvent.VK_E));

Bis hier hin habe ich es verstanden (sofern meine Überlegung richtig ist), allerdings muss der shortCut ja auch vom programm erkannt werden und daraus muss eine aktion bzw methode ( bspw.: ende( ) ) ausgeführt werden.

Ich hoffe ich habe mich nicht zu undeutlich ausgedrückt und mir kann jemand weiterhelfen.

Vielen Dank schon im voraus für eure Hilfe

MfG blotte
 
Ok,
also ich hab zwar schon fortschritte gemacht ;)

allerdings tue ich mich noch schwer damit aus bspw. der API zu lesen...
falls jemand also noch spezifischere lösungen hat, wäre dies sehr hilfreich für mich...

Trotzdem schon mal danke...
 
Wieso spezifischer? die Lösung von dem Link musst du nur geringfügig ändern und wenn du nicht "gut" im API lesen bist, dann ist das nur ein Grund mehr es jetzt zu lernen ;)
 
Also ich habe es so versucht wie im Link oben beschriebenund ich habe das Gefühl, das dass Beispiel nicht direkt auf MENUSHORTCUTs eingeht, sondern vielmehr auf ShortCuts allgemein...
ich denke, man muss die shortCuts in die MenuItems irgendwie einfügen muss...

im vorausgegangenen bsp. hat man hingegen keine MenuBar,oder?!
 
Hm, mir war gerade Langweilig :)
Code:
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;

/*
 * Created on 23.03.2006
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
/**
 * 
 */
public class DefaulFrame extends JFrame
{
	public DefaulFrame(){
		JMenuBar bar = new JMenuBar();
		JMenu menu = new JMenu("Datei");
		JMenuItem item = new JMenuItem("Beenden");
		KeyStroke k = KeyStroke.getKeyStroke('E', Event.CTRL_MASK);
		item.setAccelerator(k);
		item.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{
				System.exit(0);
			}
		});
		menu.add(item);
		bar.add(menu);
		this.setJMenuBar(bar);
		
		this.setSize(200,300);
		this.setVisible(true);
	}
	public static void main(String[] args)
	{
		new DefaulFrame(); 
	}
}
hoffe das Hilft dir..
Hier wird das Fenster bei STRG+e geschlossen..

mfg
elmato
 
Zuletzt bearbeitet:
Hallo Blotte,

ich werde hier mal den Javaexperten widersprechen. Natürlich ist die JavaApi wichtig. Wer könnte aber behaupten, er könne die Anwendung einer Klasse, einer Technik besser von der Javaapi als vom Sun Java Tutorial erlernen? Für Leute mit viel Erfahrung mag das vielleicht sein. Aber für Anfänger und Laien wie mir und anderen sind Codebeispiele mit Erläuterungen besser geignet.

Auch ist Java im Web sehr verbreitet, man findet zu fast allem und jedem genügend Beispiele. Man muss nur wissen wo man sucht.

@ Blotte
Shortcuts und Menüs sind grundlegende Dinge, zu welchen du in fast allen unteren Links ausführliche Erläuterungen und Codeschnipsel findest. Notiere diese Links, und such erst hier nach einfachen Beispielen wenn du was neues lernen, implementieren möchtest. Diese Bücher und Tutorials sind sehr gut strukturiert, so dass du auf die schnelle immer ein Beispiel unter der Hand hast.

Online-Bücher:
http://www.galileocomputing.de/openbook/javainsel5/
http://www-sst.informatik.tu-cottbus.de/~an/Books/HJP/html/cover.html
http://www.dpunkt.de/java/index.html
http://www.galileocomputing.de/openbook/java2/

Codebeispiele:
http://javaalmanac.com/
http://64.18.163.122/rgagnon/howto.html
http://examples.oreilly.com/jswing2/code/

Sun Java Tutorial:
http://java.sun.com/docs/books/tutorial/


Vg Erdal
 
Hey Flash.
Da hast du auch recht. Es giht fast nix über ein gutes Beispiel (Code).
Aber über kurz oder LANG ist es von Vorteil die Api zu verstehen.
(Oder es zumindest zu versuchen:)).
Hab ja auch nicht gesagt, dass die Api das Allheilmittel ist.
Schönen Abend noch.
 
Zurück