Menu v Javě
Z MiS
				
				
				
				
																
				
				
								
				
Více informací viz Tutoriály Oracle > Menu.
| Obsah | 
  Třída javax.swing.JMenuBar 
- Vytváří v okně pruh (panel), na kterém bude zobrazeno hlavní menu.
-  Menu přiřazujeme oknu metodou setJMenuBar(...).
- Oknu můžeme přiřadit jen jedno hlavní menu.
- Do tohoto pruhu přidáváme jednotlivé položky hlavního menu (viz dále).
menuBar = new JMenuBar(); okno.setJMenuBar(menuBar);
Vytváření menu a jeho přiřazení k oknu se obvykle provádí v metodě 
initComponets()
Třída JMenu
- Reprezentuje jednu rozbalovací položku.
- Přiřazujeme ji instanci třídy JMenuBar.
- Metodou setMnemonic(...) můžeme přiřadit akční klávesu.
menu = new JMenu("A Menu"); 
menu.setMnemonic(KeyEvent.VK_A); 
menu.getAccessibleContext().setAccessibleDescription("Textová popiska menu"); 
menuBar.add(menu);
- Vnořená menu
- Dílčí vnořená menu se vytvářejí stejně:
submenu = new JMenu("A submenu"); 
menu.add(submenu); 
  Třída javax.swing.JMenuItem 
- Reprezentuje jednu zvolitelnou položku v menu.
- Lze vkládat i položky s obrázky atd.
menuItem = new JMenuItem("A menu item"); 
- Položky vkládáme postupně metodou add(...). Pořadí odpovídá pořadí položek v menu.
menu.add(menuItem);
- Mezi položky můžeme vložit oddělovací čáru:
menu.addSeparator();
Speciální položky
-  JRadioButtonMenuItem
-  JCheckBoxMenuItem
-  JPopupMenu
- Jejich události se zpracovávají stejně jako u odpovídajících prvků GUI.
Ošetření událostí
- Položky menu se chovají jako stejně jako tlačítka.
- Lze jim tedy přiřadit ActionListener a generují události ActionEvent.
ActionEvent menuItem.addActionListener(this);
Rozšíření
- Mnemonics — navigace v menu pomocí kláves
- Nastavujeme samostatnou metodou:
menuItem.setMnemonic(KeyEvent.VK_T);
- Nebo kratší zápis pomocí parametrů konstruktoru:
menuItem = new JMenuItem("A menu item", KeyEvent.VK_T); 
- Accelerators — klávesové zkratky
- někdy také označovány jako „shortcuts“
- obejdou nutnost navigace skrz menu
-  často využívají třídu KeyStroke— kombinuje klávesu a modifikátor (Alt, Ctrl,...)
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.ALT_MASK));
