+ addItem(playback, "Play", "F5", KeyEvent.VK_P);
+ addItem(playback, "Pause", "F7", KeyEvent.VK_A);
+ addItem(playback, "Stop", "F6", KeyEvent.VK_S);
+ playback.addSeparator();
+ addItem(playback, "Set position...", KeyEvent.VK_E, false);
+ playback.addSeparator();
+ keyboard = createMenu("Set keyboard octave", KeyEvent.VK_K);
+ edit.add(keyboard);
+ for (int i = 9; i >= 0; i--) addItem(keyboard, "Octave " + i, i + 48, false);
+
+ music = createMenu("Music", KeyEvent.VK_M);
+ add(music);
+
+ addItem(music, "Add track...", KeyEvent.VK_A, true);
+ addItem(music, "Delete track...", KeyEvent.VK_D, true);
+ addItem(music, "Copy track...", KeyEvent.VK_Y, true);
+ addItem(music, "Move track...", KeyEvent.VK_M, true);
+ music.addSeparator();
+ addItem(music, "Insert measure...", KeyEvent.VK_I, false);
+ addItem(music, "Delete measure...", KeyEvent.VK_E, false);
+ music.addSeparator();
+ addItem(music, "Set time signature...", KeyEvent.VK_S, false);
+ addItem(music, "Set tempo...", KeyEvent.VK_M, false);
+ addItem(music, "Scale velocity...", KeyEvent.VK_V, false);
+ addItem(music, "Transpose...", KeyEvent.VK_T, false);
+
+ help = createMenu("Help", KeyEvent.VK_L);
+ add(help);
+
+ addItem(help, "User manual", "F1", KeyEvent.VK_M);
+ help.addSeparator();
+ addItem(help, "About", KeyEvent.VK_A, false);
+ }
+ /**
+ * Creats a menu in the menubar.
+ * @param name The name of the menu.
+ * @param mnemnic The shortcut-key to access the menu.
+ * @return menu The menu created.
+ */
+ private JMenu createMenu(String name, int mnemonic) {
+ JMenu menu = new JMenu(name);
+ menu.setMnemonic(mnemonic);
+ return menu;
+ }
+
+ /**
+ * Creats a menuitem in the menu.
+ * @param menu The menu where to add the menuitem.
+ * @param name The name of the menuitem.
+ * @param mnemonic The keyboard mnemonic used to access this menuitem
+ * @param accelerate whether to create a keyboard accelerator for this item
+ * @return item The menuitem created.
+ */
+ private JMenuItem addItem(JMenu menu, String name, int mnemonic, boolean accelerate) {
+ JMenuItem item = new JMenuItem(name);
+ item.addActionListener(this);
+ item.setMnemonic(mnemonic);
+ if (accelerate) item.setAccelerator(KeyStroke.getKeyStroke(mnemonic, ActionEvent.CTRL_MASK));
+ menu.add(item);
+ return item;