在Java中更改mouseless-modifier?

时间:2013-06-23 19:33:42

标签: java swing look-and-feel key-events

澄清:是否有一种简单/简单的方法来更改默认掩码(我的系统上的ALT),这样JMenu的东西默认情况下不会使用默认掩码+助记符(例如ALT + VK_A)访问?或者这是应该只通过自定义键绑定来完成的事情吗?

默认的无鼠标修饰符是ALT,并且由Look-n-Feel定义(我相信)。就像我所听到的那样,定义一种独特的外观并不是微不足道的,所以这不是我准备接近的东西。

但是,我想知道是否有一种简单或易于访问的方法可以将默认的无鼠标修饰符修改为ALT以外的其他修饰符。

我正在编写Java教程并注意到默认的无鼠标修饰符适用于菜单,我找不到将其更改为其他内容的方法(有没有办法将ActionEvent Mask设置为shift / ctrl会覆盖ALT的使用吗?)。

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你在这里谈论的是“助记符”。您可以使用KeyStroke类创建使用所需限定符的键绑定。更改助记符限定符是否很重要?

另请参阅this question了解详情。

<强>更新

我在Mac / OS X上,所以我从不关注助记符,但是看一下WindowsLookAndFeelBasicLookAndFeel(大多数LAF的基类)的源代码类。我发现BasicLookAndFeel中的某个属性看起来很有前途:"Menu.shortcutKeys",默认值为new int[] {KeyEvent.ALT_MASK}。尝试将其设置为其他内容,看看它是否有效..

答案 1 :(得分:1)

由于此密钥会改变我的平台,Toolkit类包含getMenuShortcutKeyMask()“确定哪个修饰键是菜单快捷键的相应加速键。”有一个完整的例子here。另请参阅How to Use Menus