Nic*_*oks 4 java swing keyboard-shortcuts
我正在创建一个类似记事本的简单文本编辑器.如果用户按下,它会将时间和日期插入到文件中F5.我浏览了助记符和加速器,但它们分别与Alt和组合使用Ctrl.
我应该使用EventListener或有其他解决方案吗?
你可以简单地使用:
JMenuItem menuItem = new JMenuItem("Refresh");
KeyStroke f5 = KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0);
menuItem.setAccelerator(f5);
Run Code Online (Sandbox Code Playgroud)
KeyStroke 0指定了没有修改器,如文档中所述.
ActionListener是菜单项事件的适当侦听器.
正如在一些评论中已经部分提到的那样,推荐的方法是
一些代码:
Action doLog = new AbstractAction("Dummny log!") {
@Override
public void actionPerformed(ActionEvent e) {
LOG.info("doing: " + getValue(Action.NAME));
}
};
doLog.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("F5"));
JMenu menu = new JMenu("dummy");
menu.add(doLog);
frame.getJMenuBar().add(menu);
Run Code Online (Sandbox Code Playgroud)