+ addItem(help, "User manual", "F1", KeyEvent.VK_M);
+ help.addSeparator();
+ addItem(help, "About", KeyEvent.VK_A);
+ }
+ /**
+ * 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.
+ * @return item The menuitem created.
+ */
+ private JMenuItem addItem(JMenu menu, String name, int mnemonic) {
+ JMenuItem item = new JMenuItem(name);
+ item.addActionListener(this);
+ menu.add(item);
+ return item;
+ }
+
+ /**
+ * Creats a menuitem in the menu.
+ * @param menu The menu to where to add the menuitem.
+ * @param name The name of the menuitem.
+ * @param key The keystroke to access this menuitem.
+ * @return item The menuitem created.
+ */
+ private JMenuItem addItem(JMenu menu, String name, String key, int mnemonic) {
+ JMenuItem item = new JMenuItem(name);
+ item.setAccelerator(KeyStroke.getKeyStroke(key));
+ item.setMnemonic(mnemonic);
+ item.addActionListener(this);
+ menu.add(item);
+ return item;
+ }
+
+ /**
+ * Creats a menuitem in the menu.
+ * @param menu The menu to where to add the menuitem.
+ * @param name The name of the menuitem.
+ * @param key The keystroke to access this menuitem.
+ * @param mask The keyboard mask.
+ * @return item The menuitem created.
+ */
+ private JMenuItem addItem(JMenu menu, String name, int key, int mask) {
+ JMenuItem item = new JMenuItem(name);
+ item.setAccelerator(KeyStroke.getKeyStroke(key, mask));
+ item.setMnemonic(key);
+ item.addActionListener(this);
+ menu.add(item);
+ return item;
+ }
+
+ private boolean isMidiFile(File f) {
+ if(f != null) {
+ String extension = f.getName().substring(f.getName().lastIndexOf('.') + 1).toLowerCase().trim();
+ if (extension.equals("mid")) return true;