如何在Java中创建隐藏菜单项的快捷方式

时间:2013-10-21 10:28:52

标签: java swing shortcut invisible jmenuitem

我最近在我的程序中添加了一个控制台对话框,以便更容易地捕获bug。目前可通过JMenuItem访问它,并具有键盘快捷键“Ctrl + L”。

理想情况下,我想保留此选项,但使菜单项隐藏/隐藏,因为我只是想让人们使用它,如果他们将内容复制到我这样我可以调查一些东西。但是,当我将菜单项设置为不可见时,快捷方式也会停止工作。

这是我尝试过的:

    mntmViewLogs.setAccelerator(KeyStroke.getKeyStroke('L', KeyEvent.CTRL_DOWN_MASK));
    mntmViewLogs.setVisible(false);

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该使用密钥绑定API:http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html

将加速键不设置为菜单,而是设置菜单后面的操作:     getInputMap中(WHEN_IN_FOCUSED_WINDOW)。把(                     acceleratorKey,                     actionname);