java 按键方法调用

标签 java keystroke

我曾多次尝试通过咨询 Google 自行找到解决方案,但这个问题虽然看起来简单得可笑,但却没有记录在案的答案。在我看来。

我想知道的是:如何通过击键调用方法? 示例:按 ctrl + up -> 调用方法 ZoomUp();

ps:如果该击键可以绑定(bind)到 JTextPane,那就太好了。

更新

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

  • 创建项目:JMenuItem up = new JMenuItem("up");

  • 创建快捷方式:

up.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_UP, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));

  • 通过监听器捕获事件:

up.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent event) { //Do stuff } });

(- 永远不要添加该项目,因此它是一个隐藏的快捷方式) 但这显然是荒谬的。

最佳答案

您不能使用JMenuItem 创建“隐藏”快捷方式。一旦 JMenuItem 间接添加到 Window(通常通过 <-JMenu),JMenuItem 的快捷方式就会变为 Activity 状态><-JMenuBar<-JFrame)。如果没有这个链接,就无法知道加速器是否会被触发,因为同一个加速器可能会在不同的应用程序窗口中触发不同的操作。

您需要在要使用react的组件或框架上使用 KeyListener

关于java 按键方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106204/

相关文章:

java - 在 JPA 实体的基类中定义序列生成器?

java - Mockito 测试 - 测试 write() 方法导致 NullPointerException

javascript - 当我按回车键时,无法登录

visual-studio-code - VS Code 中的按键显示

c++ - 我们可以在 Linux 中使用 C++ 使用原始 ASCII 值生成击键吗?

Java:如何从任何 JComponent 中删除默认的 KeyStrokes?

java - BDB LongBinding 与 ByteArrayBinding 静态方法

java - 逆向root java

c++ - 更改通过钩子(Hook)的击键(c/c++)

java - 打印数组列表的内容