我最近在我的程序中添加了一个控制台对话框,以便更容易地捕获bug。目前可通过JMenuItem访问它,并具有键盘快捷键“Ctrl + L”。
理想情况下,我想保留此选项,但使菜单项隐藏/隐藏,因为我只是想让人们使用它,如果他们将内容复制到我这样我可以调查一些东西。但是,当我将菜单项设置为不可见时,快捷方式也会停止工作。
这是我尝试过的:
mntmViewLogs.setAccelerator(KeyStroke.getKeyStroke('L', KeyEvent.CTRL_DOWN_MASK));
mntmViewLogs.setVisible(false);
谢谢!
答案 0 :(得分:2)
您应该使用密钥绑定API:http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html
将加速键不设置为菜单,而是设置菜单后面的操作: getInputMap中(WHEN_IN_FOCUSED_WINDOW)。把( acceleratorKey, actionname);