在 Java (OSX) 中设置三个按钮加速键热键
我正在尝试更改我正在使用的java应用程序中的一些热键,似乎我正在使用的系统可能无法使用三个按钮组合键。我们当前有一个 JMenuItem 项,我们通过如下调用设置热键:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
这里是 getAcceleratorKey 方法:
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
看来该方法作为参数的 keyCode 只能是用命令按下的一个键。那么我该如何执行 Command-shift z 之类的操作来撤消呢?我需要使用不同的类吗?
I am trying to change a few hot-keys in the java application I am wokring on and it seems that the system I am using may not work with three button key combinations. We currently have a JMenuItem item and we set the hotkey with a call like this:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
And here is the getAcceleratorKey method:
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
It seems that the keyCode that this method takes as a parameter can only be one key pressed with command. So how then would I do something like Command-shift z for undo? Do I need to use a different class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
KeyStroke.getKeyStroke() 将修饰符作为参数。它们的组合应该会给你你想要的:
KeyStroke.getKeyStroke() takes modifiers as a parameter. A combination of them should give you what you want: