Javatterβでショートカットキー
別にJavatterβじゃなくてもいいです。
メソッド
public void addShortCut(int keyCode, int modifies, ActionListener... listeners) { JFrame frame = getMainView().getMainFrame(); JMenuBar menuBar; if ((menuBar = frame.getJMenuBar()) == null) { menuBar = new JMenuBar(); menuBar.setPreferredSize(new Dimension(0, 0)); frame.setJMenuBar(menuBar); } JMenu menu; if (menuBar.getMenuCount() < 1) { menu = new JMenu(); menuBar.add(menu); } else { menu = menuBar.getMenu(0); } JMenuItem item = new JMenuItem(); item.setAccelerator(KeyStroke.getKeyStroke(keyCode, modifies)); for (ActionListener listener : listeners) item.addActionListener(listener); menu.add(item); }
使用
// Ctrl+Enter addShortCut(KeyEvent.VK_Enter, KeyEvent.KeyEvent.CTRL_DOWN_MASK, listener0); // A (non-modifies key) addShortCut(KeyEvent.VK_A, 0, listener1);