package pkg2; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import static javax.swing.SwingUtilities.invokeLater; public class Test8013453 { private static final String[] names = {"First", "Second", "Third", "Fourth", "Fifth"}; public static void main(String[] args) { invokeLater(new Runnable() { @Override public void run() { JMenuBar menu = new JMenuBar(); for (String name : names) { menu.add(create(new JMenu(name))); } JFrame frame = new JFrame("8013453: second mnemonic"); frame.setSize(320, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setJMenuBar(menu); frame.setVisible(true); } }); } private static JMenuItem create(JMenuItem menu) { menu.setMnemonic(menu.getText().charAt(0)); if (menu instanceof JMenu) { for (String name : names) { menu.add(create(new JMenuItem(name))); } } return menu; } }