java - 将加速键击键传递给 Java 中的主菜单

标签 java keypress accelerator

我使用 MenuItem.setAccelerator() 向主菜单添加了一些加速器。只是基本的东西,比如 ctrl-c 用于复制等。

这工作正常。但该应用程序有点像 IDE,它有几个包含 JTables 的面板。如果表格单元格有焦点,它会吸收加速键,这意味着主菜单永远看不到它。

显然,如果可编辑表格单元格处于 Activity 状态,我希望剪切和粘贴键能够正常运行,但在其他任何情况下,我都希望主菜单能够响应。

有什么想法吗?

最佳答案

KeyStrokes 转到首先获得焦点的组件。由于 JTable 将 Ctrl+C 绑定(bind)到 Action,因此会调用该操作。

如果您不喜欢表的默认操作,则需要从表中删除绑定(bind)。

阅读 How to Use Key Bindings 上的 Swing 教程部分.它向您展示了如何删除绑定(bind)。

关于java - 将加速键击键传递给 Java 中的主菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009764/

相关文章:

linux 上的 java keylistener

c++ - 使用 PostMessage 模拟按键仅适用于某些应用程序?

c# - 我想让表单上的所有文本框仅接受代码尽可能少的数字 - c#

java - 从什么时候开始在 Java 中必须包含一个空的构造函数?

java - messageArrived 方法出现异常时 MQTT 重试

java - 关闭所有可能的 GUI 相关元素

c++ - Win32 C++ 在运行时为 MenuItem 分配/更改快捷键

python - 如何在 Tkinter 菜单中获取 Mac "command"符号

java - 显示两个非模态 JDialog 后 JMenuItem 加速器不起作用? (仅限 Mac?)

java - jni 从 c/c++11 返回字符串数组并在 java 上使用而不在 c++ 端使用 for 循环?