Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java击键方法调用_Java_Keystroke - Fatal编程技术网

java击键方法调用

java击键方法调用,java,keystroke,Java,Keystroke,我曾多次尝试通过咨询谷歌自己找到一个解决方案,但这个问题,看似简单得可笑,却没有记录在案的答案。在我看来 我只想知道:如何通过击键调用方法? 示例:按ctrl+up->call method zoomUp() ps:如果击键可以绑定到JTextPane,那就太好了 更新 到目前为止,我的解决方案是: 创建一个项目:JMenuItem up=newjmenuItem(“up”) 创建快捷方式: setAccelerator(KeyStroke.getKeyStroke(java.awt.eve

我曾多次尝试通过咨询谷歌自己找到一个解决方案,但这个问题,看似简单得可笑,却没有记录在案的答案。在我看来

我只想知道:如何通过击键调用方法? 示例:按ctrl+up->call method zoomUp()

ps:如果击键可以绑定到JTextPane,那就太好了

更新

到目前为止,我的解决方案是:

  • 创建一个项目:
    JMenuItem up=newjmenuItem(“up”)

  • 创建快捷方式:

setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_up, getMenuShortcutKeyMask())

  • 由侦听器捕获事件:
up.addActionListener(新java.awt.event.ActionListener(){public 执行的无效操作(操作事件){ //做事}})

(-从不添加项目,因此它是隐藏的快捷方式)
但这显然是荒谬的。

您不能使用
JMenuItem
创建“隐藏”的捷径。一旦
JMenuItem
被间接添加到
窗口
(通常通过相关(?)swing教程:使用keylistener:非常感谢您的回复,但我认为keylistener不是适合我的解决方案。我不需要检查一次按键/释放。我需要一次击键=一个带有ctrl等修改器的键。keylistener支持ctrl和ctrl等键Alt@Haeri编译并运行上面链接中的教程。您将看到它打印出来键和修饰符。另外,你的评论让我觉得你不应该在Ok之前声称“没有记录的答案”。谢谢你澄清了这一点。就像我说的,我觉得KeyListener是用于“游戏”类型的输入的,就像一段时间内的输入(真的)循环。我一生只需要使用它一次,就可以放大/缩小JTextPane。但好的,我将再次查看该KeyListener。