<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJMenu</id>
		<title>Java Tutorial/Swing/JMenu - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJMenu"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JMenu&amp;action=history"/>
		<updated>2026-04-22T08:14:34Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JMenu&amp;diff=3949&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JMenu&amp;diff=3949&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JMenu&amp;diff=3950&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JMenu&amp;diff=3950&amp;oldid=prev"/>
				<updated>2010-05-31T15:33:16Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Adding a Menu to a Window ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
public class AddMenuBarToFrame extends JFrame {&lt;br /&gt;
  private JMenuBar menuBar = new JMenuBar(); // Window menu bar&lt;br /&gt;
  public AddMenuBarToFrame(String title) {&lt;br /&gt;
    setTitle(title);&lt;br /&gt;
    setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;
    setJMenuBar(menuBar); // Add the menu bar to the window&lt;br /&gt;
    JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;); // Create File menu&lt;br /&gt;
    JMenu elementMenu = new JMenu(&amp;quot;Elements&amp;quot;); // Create Elements menu&lt;br /&gt;
    menuBar.add(fileMenu); // Add the file menu&lt;br /&gt;
    menuBar.add(elementMenu); // Add the element menu&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    AddMenuBarToFrame window = new AddMenuBarToFrame(&amp;quot;Sketcher&amp;quot;); &lt;br /&gt;
    window.setBounds(30, 30, 300, 300);&lt;br /&gt;
    window.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Adding Menu Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import static java.awt.event.InputEvent.CTRL_DOWN_MASK;&lt;br /&gt;
import javax.swing.ButtonGroup;&lt;br /&gt;
import javax.swing.JCheckBoxMenuItem;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JRadioButtonMenuItem;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class FramewithMenuShortcut extends JFrame {&lt;br /&gt;
  private JMenuBar menuBar = new JMenuBar(); // Window menu bar&lt;br /&gt;
  private JMenuItem newItem, openItem, closeItem, saveItem, saveAsItem, printItem;&lt;br /&gt;
  private JRadioButtonMenuItem lineItem, rectangleItem, circleItem;&lt;br /&gt;
  private JCheckBoxMenuItem redItem, yellowItem;&lt;br /&gt;
  public FramewithMenuShortcut(String title) {&lt;br /&gt;
    JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;); // Create File menu&lt;br /&gt;
    JMenu elementMenu = new JMenu(&amp;quot;Elements&amp;quot;); // Create Elements menu&lt;br /&gt;
    fileMenu.setMnemonic(&amp;quot;F&amp;quot;); // Create shortcut&lt;br /&gt;
    elementMenu.setMnemonic(&amp;quot;E&amp;quot;); // Create shortcut&lt;br /&gt;
    setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;
    setJMenuBar(menuBar);&lt;br /&gt;
    newItem = fileMenu.add(&amp;quot;New&amp;quot;);&lt;br /&gt;
    openItem = fileMenu.add(&amp;quot;Open&amp;quot;);&lt;br /&gt;
    closeItem = fileMenu.add(&amp;quot;Close&amp;quot;);&lt;br /&gt;
    fileMenu.addSeparator();&lt;br /&gt;
    saveItem = fileMenu.add(&amp;quot;Save&amp;quot;);&lt;br /&gt;
    saveAsItem = fileMenu.add(&amp;quot;Save As...&amp;quot;);&lt;br /&gt;
    fileMenu.addSeparator();&lt;br /&gt;
    printItem = fileMenu.add(&amp;quot;Print&amp;quot;);&lt;br /&gt;
    elementMenu.add(lineItem = new JRadioButtonMenuItem(&amp;quot;Line&amp;quot;, true));&lt;br /&gt;
    elementMenu.add(rectangleItem = new JRadioButtonMenuItem(&amp;quot;Rectangle&amp;quot;, false));&lt;br /&gt;
    elementMenu.add(circleItem = new JRadioButtonMenuItem(&amp;quot;Circle&amp;quot;, false));&lt;br /&gt;
    ButtonGroup types = new ButtonGroup();&lt;br /&gt;
    types.add(lineItem);&lt;br /&gt;
    types.add(rectangleItem);&lt;br /&gt;
    types.add(circleItem);&lt;br /&gt;
    elementMenu.addSeparator();&lt;br /&gt;
    elementMenu.add(redItem = new JCheckBoxMenuItem(&amp;quot;Red&amp;quot;, false));&lt;br /&gt;
    elementMenu.add(yellowItem = new JCheckBoxMenuItem(&amp;quot;Yellow&amp;quot;, false));&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    menuBar.add(elementMenu);&lt;br /&gt;
    newItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;N&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    openItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;O&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    saveItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;S&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    printItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;P&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    lineItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;L&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    rectangleItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;E&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    circleItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;I&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    elementMenu.addSeparator();&lt;br /&gt;
    redItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;R&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    yellowItem.setAccelerator(KeyStroke.getKeyStroke(&amp;quot;Y&amp;quot;, CTRL_DOWN_MASK));&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    menuBar.add(elementMenu);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    FramewithMenuShortcut window = new FramewithMenuShortcut(&amp;quot;&amp;quot;);&lt;br /&gt;
    window.setBounds(30, 30, 300, 300);&lt;br /&gt;
    window.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add Separator to JMenu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JSeparator;&lt;br /&gt;
public class MenuSeparator extends JFrame {&lt;br /&gt;
  public MenuSeparator() {&lt;br /&gt;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuBar bar = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    bar.add(menu);&lt;br /&gt;
    menu.add(new JMenuItem(&amp;quot;Close&amp;quot;));&lt;br /&gt;
    menu.add(new JSeparator()); // SEPARATOR&lt;br /&gt;
    menu.add(new JMenuItem(&amp;quot;Exit&amp;quot;));&lt;br /&gt;
    setJMenuBar(bar);&lt;br /&gt;
    getContentPane().add(new JLabel(&amp;quot;A placeholder&amp;quot;));&lt;br /&gt;
    pack();&lt;br /&gt;
    setSize(300, 300);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String arg[]) {&lt;br /&gt;
    new MenuSeparator();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Customizing JMenu Look and Feel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Property StringObject TypeMenu.acceleratorDelimiterStringMenu.acceleratorFontFontMenu.acceleratorForegroundColorMenu.acceleratorSelectionForegroundColorMenu.ActionMapActionMapMenu.arrowIconIconMenu.backgroundColorMenu.borderBorderMenu.borderPaintedBooleanMenu.checkIconIconMenu.delayIntegerMenu.disabledForegroundColorMenu.fontFontMenu.foregroundColorMenu.marginInsetsMenu.menuPopupOffsetXIntegerMenu.menuPopupOffsetYIntegerMenu.opaqueBooleanMenu.selectionBackgroundColorMenu.selectionForegroundColorMenu.shortcutKeysint[ ]Menu.submenuPopupOffsetXIntegerMenu.submenuPopupOffsetYIntegerMenu.textIconGapIntegerMenu.useMenuBarBackgroundForTopLevelBooleanmenuPressedItemBColormenuPressedItemFColormenuTextColorMenuUIString&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Layout menu yourself ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.BoxLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
/**&lt;br /&gt;
 * @author ges&lt;br /&gt;
 * @author kwalrath&lt;br /&gt;
 */&lt;br /&gt;
/* MenuLayoutDemo.java requires no other files. */&lt;br /&gt;
public class MenuLayoutDemo {&lt;br /&gt;
  public JMenuBar createMenuBar() {&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS));&lt;br /&gt;
    menuBar.add(createMenu(&amp;quot;Menu 1&amp;quot;));&lt;br /&gt;
    menuBar.add(createMenu(&amp;quot;Menu 2&amp;quot;));&lt;br /&gt;
    menuBar.add(createMenu(&amp;quot;Menu 3&amp;quot;));&lt;br /&gt;
    menuBar.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, Color.BLACK));&lt;br /&gt;
    return menuBar;&lt;br /&gt;
  }&lt;br /&gt;
  // used by createMenuBar&lt;br /&gt;
  public JMenu createMenu(String title) {&lt;br /&gt;
    JMenu m = new HorizontalMenu(title);&lt;br /&gt;
    m.add(&amp;quot;Menu item #1 in &amp;quot; + title);&lt;br /&gt;
    m.add(&amp;quot;Menu item #2 in &amp;quot; + title);&lt;br /&gt;
    m.add(&amp;quot;Menu item #3 in &amp;quot; + title);&lt;br /&gt;
    JMenu submenu = new HorizontalMenu(&amp;quot;Submenu&amp;quot;);&lt;br /&gt;
    submenu.add(&amp;quot;Submenu item #1&amp;quot;);&lt;br /&gt;
    submenu.add(&amp;quot;Submenu item #2&amp;quot;);&lt;br /&gt;
    m.add(submenu);&lt;br /&gt;
    return m;&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    // Create and set up the window.&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;MenuLayoutDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Create and set up the content pane.&lt;br /&gt;
    MenuLayoutDemo demo = new MenuLayoutDemo();&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    contentPane.setBackground(Color.WHITE); // contrasting bg&lt;br /&gt;
    contentPane.add(demo.createMenuBar(), BorderLayout.LINE_START);&lt;br /&gt;
    // Display the window.&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // Schedule a job for the event-dispatching thread:&lt;br /&gt;
    // creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  class HorizontalMenu extends JMenu {&lt;br /&gt;
    HorizontalMenu(String label) {&lt;br /&gt;
      super(label);&lt;br /&gt;
      JPopupMenu pm = getPopupMenu();&lt;br /&gt;
      pm.setLayout(new BoxLayout(pm, BoxLayout.LINE_AXIS));&lt;br /&gt;
    }&lt;br /&gt;
    public Dimension getMinimumSize() {&lt;br /&gt;
      return getPreferredSize();&lt;br /&gt;
    }&lt;br /&gt;
    public Dimension getMaximumSize() {&lt;br /&gt;
      return getPreferredSize();&lt;br /&gt;
    }&lt;br /&gt;
    public void setPopupMenuVisible(boolean b) {&lt;br /&gt;
      boolean isVisible = isPopupMenuVisible();&lt;br /&gt;
      if (b != isVisible) {&lt;br /&gt;
        if ((b == true) &amp;amp;&amp;amp; isShowing()) {&lt;br /&gt;
          // Set location of popupMenu (pulldown or pullright).&lt;br /&gt;
          // Perhaps this should be dictated by L&amp;amp;F.&lt;br /&gt;
          int x = 0;&lt;br /&gt;
          int y = 0;&lt;br /&gt;
          Container parent = getParent();&lt;br /&gt;
          if (parent instanceof JPopupMenu) {&lt;br /&gt;
            x = 0;&lt;br /&gt;
            y = getHeight();&lt;br /&gt;
          } else {&lt;br /&gt;
            x = getWidth();&lt;br /&gt;
            y = 0;&lt;br /&gt;
          }&lt;br /&gt;
          getPopupMenu().show(this, x, y);&lt;br /&gt;
        } else {&lt;br /&gt;
          getPopupMenu().setVisible(false);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listening to JMenu Events with a ChangeListener: register a ChangeListener with a JMenu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.event.ChangeEvent;&lt;br /&gt;
import javax.swing.event.ChangeListener;&lt;br /&gt;
public class ContructMenuWithAction {&lt;br /&gt;
  public static void main(final String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;MenuSample Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    // File Menu, F - Mnemonic&lt;br /&gt;
    JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    fileMenu.setMnemonic(KeyEvent.VK_F);&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    fileMenu.addChangeListener(new ChangeListener() {&lt;br /&gt;
      public void stateChanged(ChangeEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;File Menu Changed&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    // File-&amp;gt;New, N - Mnemonic&lt;br /&gt;
    JMenuItem newMenuItem = new JMenuItem(&amp;quot;New&amp;quot;);&lt;br /&gt;
    fileMenu.add(newMenuItem);&lt;br /&gt;
    newMenuItem.addChangeListener(new ChangeListener() {&lt;br /&gt;
      public void stateChanged(ChangeEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;new menu item changed&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    frame.setJMenuBar(menuBar);&lt;br /&gt;
    frame.setSize(350, 250);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Set Mnemonic key ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
class MenuActionListener implements ActionListener {&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
    System.out.println(&amp;quot;Selected: &amp;quot; + actionEvent.getActionCommand());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MenuAction {&lt;br /&gt;
  public static void main(final String args[]) {&lt;br /&gt;
    ActionListener menuListener = new MenuActionListener();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;MenuSample Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    // File Menu, F - Mnemonic&lt;br /&gt;
    JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    fileMenu.setMnemonic(KeyEvent.VK_F);&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    // File-&amp;gt;New, N - Mnemonic&lt;br /&gt;
    JMenuItem newMenuItem = new JMenuItem(&amp;quot;New&amp;quot;, KeyEvent.VK_N);&lt;br /&gt;
    newMenuItem.addActionListener(menuListener);&lt;br /&gt;
    fileMenu.add(newMenuItem);&lt;br /&gt;
&lt;br /&gt;
    frame.setJMenuBar(menuBar);&lt;br /&gt;
    frame.setSize(350, 250);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Submenu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.ButtonGroup;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JRadioButtonMenuItem;&lt;br /&gt;
public class Submenu  {&lt;br /&gt;
  public static void main(final String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;MenuSample Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    // File Menu, F - Mnemonic&lt;br /&gt;
    JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    fileMenu.setMnemonic(KeyEvent.VK_F);&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    // File-&amp;gt;New, N - Mnemonic&lt;br /&gt;
    JMenuItem newMenuItem = new JMenuItem(&amp;quot;New&amp;quot;, KeyEvent.VK_N);&lt;br /&gt;
    fileMenu.add(newMenuItem);&lt;br /&gt;
    // Edit-&amp;gt;Options Submenu, O - Mnemonic, at.gif - Icon Image File&lt;br /&gt;
    JMenu findOptionsMenu = new JMenu(&amp;quot;Options&amp;quot;);&lt;br /&gt;
    Icon atIcon = new ImageIcon(&amp;quot;at.gif&amp;quot;);&lt;br /&gt;
    findOptionsMenu.setIcon(atIcon);&lt;br /&gt;
    findOptionsMenu.setMnemonic(KeyEvent.VK_O);&lt;br /&gt;
    fileMenu.add(findOptionsMenu);&lt;br /&gt;
    // ButtonGroup for radio buttons&lt;br /&gt;
    ButtonGroup directionGroup = new ButtonGroup();&lt;br /&gt;
    // Edit-&amp;gt;Options-&amp;gt;Forward, F - Mnemonic, in group&lt;br /&gt;
    JRadioButtonMenuItem forwardMenuItem = new JRadioButtonMenuItem(&amp;quot;Forward&amp;quot;, true);&lt;br /&gt;
    forwardMenuItem.setMnemonic(KeyEvent.VK_F);&lt;br /&gt;
    findOptionsMenu.add(forwardMenuItem);&lt;br /&gt;
    directionGroup.add(forwardMenuItem);&lt;br /&gt;
    // Edit-&amp;gt;Options-&amp;gt;Backward, B - Mnemonic, in group&lt;br /&gt;
    JRadioButtonMenuItem backwardMenuItem = new JRadioButtonMenuItem(&amp;quot;Backward&amp;quot;);&lt;br /&gt;
    backwardMenuItem.setMnemonic(KeyEvent.VK_B);&lt;br /&gt;
    findOptionsMenu.add(backwardMenuItem);&lt;br /&gt;
    directionGroup.add(backwardMenuItem);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    frame.setJMenuBar(menuBar);&lt;br /&gt;
    frame.setSize(350, 250);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The JMenu component is the basic menu item container that is placed on a JMenuBar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;In various places within the different menus, menu separators divide the options into logical sets.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Each of the menu options has a mnemonic associated with it to help with keyboard navigation and selection.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The mnemonic allows users to make menu selections via the keyboard, for instance, by pressing Alt-F on a Windows platform to open the File menu.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A keystroke associated with several options acts as a keyboard accelerator. Unlike the mnemonic, the accelerator can directly activate a menu option, even when the menu option isn&amp;quot;t visible.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The Options submenu has an icon associated with it.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
JMenuItem newMenuItem = new JMenuItem(&amp;quot;New&amp;quot;);&lt;br /&gt;
fileMenu.add(newMenuItem);&lt;br /&gt;
JMenuItem openMenuItem = new JMenuItem(&amp;quot;Open&amp;quot;);&lt;br /&gt;
fileMenu.add(openMenuItem);&lt;br /&gt;
JMenuItem closeMenuItem = new JMenuItem(&amp;quot;Close&amp;quot;);&lt;br /&gt;
fileMenu.add(closeMenuItem);&lt;br /&gt;
fileMenu.addSeparator();&lt;br /&gt;
JMenuItem saveMenuItem = new JMenuItem(&amp;quot;Save&amp;quot;);&lt;br /&gt;
fileMenu.add(saveMenuItem);&lt;br /&gt;
fileMenu.addSeparator();&lt;br /&gt;
JMenuItem exitMenuItem = new JMenuItem(&amp;quot;Exit&amp;quot;);&lt;br /&gt;
fileMenu.add(exitMenuItem);&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using Action Objects with Menus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Creating a specific implementation of AbstractAction and adds it to a JMenu multiple times&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.EventQueue;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
class ShowAction extends AbstractAction {&lt;br /&gt;
  Component parentComponent;&lt;br /&gt;
  public ShowAction(Component parentComponent) {&lt;br /&gt;
    super(&amp;quot;About&amp;quot;);&lt;br /&gt;
    putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_A));&lt;br /&gt;
    this.parentComponent = parentComponent;&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
    Runnable runnable = new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        JOptionPane.showMessageDialog(parentComponent, &amp;quot;About Swing&amp;quot;, &amp;quot;About Box V2.0&amp;quot;,&lt;br /&gt;
            JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    EventQueue.invokeLater(runnable);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class ContructMenuWithAction {&lt;br /&gt;
  public static void main(final String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;MenuSample Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    // File Menu, F - Mnemonic&lt;br /&gt;
    JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    fileMenu.setMnemonic(KeyEvent.VK_F);&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    // File-&amp;gt;New, N - Mnemonic&lt;br /&gt;
    JMenuItem newMenuItem = new JMenuItem(new ShowAction(frame));&lt;br /&gt;
    fileMenu.add(newMenuItem);&lt;br /&gt;
    frame.setJMenuBar(menuBar);&lt;br /&gt;
    frame.setSize(350, 250);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using MenuListener to listen to: menu canceled, selected and deselected events ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;With a registered MenuListener, you&amp;quot;re notified when a JMenu is selected before the pop-up &lt;br /&gt;
menu is opened with the menu&amp;quot;s choices.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface MenuListener extends EventListener {&lt;br /&gt;
  public void menuCanceled(MenuEvent e);&lt;br /&gt;
  public void menuDeselected(MenuEvent e);&lt;br /&gt;
  public void menuSelected(MenuEvent e);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  what menus look like ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.ButtonGroup;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JCheckBoxMenuItem;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JRadioButtonMenuItem;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
/* MenuLookDemo.java requires images/middle.gif. */&lt;br /&gt;
/*&lt;br /&gt;
 * This class exists solely to show you what menus look like. It has no&lt;br /&gt;
 * menu-related event handling.&lt;br /&gt;
 */&lt;br /&gt;
public class MenuLookDemo {&lt;br /&gt;
  JTextArea output;&lt;br /&gt;
  JScrollPane scrollPane;&lt;br /&gt;
  public JMenuBar createMenuBar() {&lt;br /&gt;
    JMenuBar menuBar;&lt;br /&gt;
    JMenu menu, submenu;&lt;br /&gt;
    JMenuItem menuItem;&lt;br /&gt;
    JRadioButtonMenuItem rbMenuItem;&lt;br /&gt;
    JCheckBoxMenuItem cbMenuItem;&lt;br /&gt;
    // Create the menu bar.&lt;br /&gt;
    menuBar = new JMenuBar();&lt;br /&gt;
    // Build the first menu.&lt;br /&gt;
    menu = new JMenu(&amp;quot;A Menu&amp;quot;);&lt;br /&gt;
    menu.setMnemonic(KeyEvent.VK_A);&lt;br /&gt;
    menu.getAccessibleContext().setAccessibleDescription(&lt;br /&gt;
        &amp;quot;The only menu in this program that has menu items&amp;quot;);&lt;br /&gt;
    menuBar.add(menu);&lt;br /&gt;
    // a group of JMenuItems&lt;br /&gt;
    menuItem = new JMenuItem(&amp;quot;A text-only menu item&amp;quot;, KeyEvent.VK_T);&lt;br /&gt;
    // menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead&lt;br /&gt;
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,&lt;br /&gt;
        ActionEvent.ALT_MASK));&lt;br /&gt;
    menuItem.getAccessibleContext().setAccessibleDescription(&lt;br /&gt;
        &amp;quot;This doesn&amp;quot;t really do anything&amp;quot;);&lt;br /&gt;
    menu.add(menuItem);&lt;br /&gt;
    ImageIcon icon = createImageIcon(&amp;quot;images/middle.gif&amp;quot;);&lt;br /&gt;
    menuItem = new JMenuItem(&amp;quot;Both text and icon&amp;quot;, icon);&lt;br /&gt;
    menuItem.setMnemonic(KeyEvent.VK_B);&lt;br /&gt;
    menu.add(menuItem);&lt;br /&gt;
    menuItem = new JMenuItem(icon);&lt;br /&gt;
    menuItem.setMnemonic(KeyEvent.VK_D);&lt;br /&gt;
    menu.add(menuItem);&lt;br /&gt;
    // a group of radio button menu items&lt;br /&gt;
    menu.addSeparator();&lt;br /&gt;
    ButtonGroup group = new ButtonGroup();&lt;br /&gt;
    rbMenuItem = new JRadioButtonMenuItem(&amp;quot;A radio button menu item&amp;quot;);&lt;br /&gt;
    rbMenuItem.setSelected(true);&lt;br /&gt;
    rbMenuItem.setMnemonic(KeyEvent.VK_R);&lt;br /&gt;
    group.add(rbMenuItem);&lt;br /&gt;
    menu.add(rbMenuItem);&lt;br /&gt;
    rbMenuItem = new JRadioButtonMenuItem(&amp;quot;Another one&amp;quot;);&lt;br /&gt;
    rbMenuItem.setMnemonic(KeyEvent.VK_O);&lt;br /&gt;
    group.add(rbMenuItem);&lt;br /&gt;
    menu.add(rbMenuItem);&lt;br /&gt;
    // a group of check box menu items&lt;br /&gt;
    menu.addSeparator();&lt;br /&gt;
    cbMenuItem = new JCheckBoxMenuItem(&amp;quot;A check box menu item&amp;quot;);&lt;br /&gt;
    cbMenuItem.setMnemonic(KeyEvent.VK_C);&lt;br /&gt;
    menu.add(cbMenuItem);&lt;br /&gt;
    cbMenuItem = new JCheckBoxMenuItem(&amp;quot;Another one&amp;quot;);&lt;br /&gt;
    cbMenuItem.setMnemonic(KeyEvent.VK_H);&lt;br /&gt;
    menu.add(cbMenuItem);&lt;br /&gt;
    // a submenu&lt;br /&gt;
    menu.addSeparator();&lt;br /&gt;
    submenu = new JMenu(&amp;quot;A submenu&amp;quot;);&lt;br /&gt;
    submenu.setMnemonic(KeyEvent.VK_S);&lt;br /&gt;
    menuItem = new JMenuItem(&amp;quot;An item in the submenu&amp;quot;);&lt;br /&gt;
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,&lt;br /&gt;
        ActionEvent.ALT_MASK));&lt;br /&gt;
    submenu.add(menuItem);&lt;br /&gt;
    menuItem = new JMenuItem(&amp;quot;Another item&amp;quot;);&lt;br /&gt;
    submenu.add(menuItem);&lt;br /&gt;
    menu.add(submenu);&lt;br /&gt;
    // Build second menu in the menu bar.&lt;br /&gt;
    menu = new JMenu(&amp;quot;Another Menu&amp;quot;);&lt;br /&gt;
    menu.setMnemonic(KeyEvent.VK_N);&lt;br /&gt;
    menu.getAccessibleContext().setAccessibleDescription(&lt;br /&gt;
        &amp;quot;This menu does nothing&amp;quot;);&lt;br /&gt;
    menuBar.add(menu);&lt;br /&gt;
    return menuBar;&lt;br /&gt;
  }&lt;br /&gt;
  public Container createContentPane() {&lt;br /&gt;
    // Create the content-pane-to-be.&lt;br /&gt;
    JPanel contentPane = new JPanel(new BorderLayout());&lt;br /&gt;
    contentPane.setOpaque(true);&lt;br /&gt;
    // Create a scrolled text area.&lt;br /&gt;
    output = new JTextArea(5, 30);&lt;br /&gt;
    output.setEditable(false);&lt;br /&gt;
    scrollPane = new JScrollPane(output);&lt;br /&gt;
    // Add the text area to the content pane.&lt;br /&gt;
    contentPane.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    return contentPane;&lt;br /&gt;
  }&lt;br /&gt;
  /** Returns an ImageIcon, or null if the path was invalid. */&lt;br /&gt;
  protected static ImageIcon createImageIcon(String path) {&lt;br /&gt;
    java.net.URL imgURL = MenuLookDemo.class.getResource(path);&lt;br /&gt;
    if (imgURL != null) {&lt;br /&gt;
      return new ImageIcon(imgURL);&lt;br /&gt;
    } else {&lt;br /&gt;
      System.err.println(&amp;quot;Couldn&amp;quot;t find file: &amp;quot; + path);&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    // Create and set up the window.&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;MenuLookDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Create and set up the content pane.&lt;br /&gt;
    MenuLookDemo demo = new MenuLookDemo();&lt;br /&gt;
    frame.setJMenuBar(demo.createMenuBar());&lt;br /&gt;
    frame.setContentPane(demo.createContentPane());&lt;br /&gt;
    // Display the window.&lt;br /&gt;
    frame.setSize(450, 260);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // Schedule a job for the event-dispatching thread:&lt;br /&gt;
    // creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>