gpt4 book ai didi

java - JMenuBar 未从 RSyntaxTextArea 接收按键组合

转载 作者:行者123 更新时间:2023-11-30 04:39:48 27 4
gpt4 key购买 nike

我在将来自文本区域的按键事件到达 JMenBar 时遇到问题。我在运行时从 XML 文件生成了菜单栏,并且文本区域的创建方式如下:

@Override
public void createUI() {
this.textArea = new RSyntaxTextArea(25, 70);
this.scrollPane = new RTextScrollPane(this.textArea);
this.setLayout(new BorderLayout());
this.add(this.scrollPane, BorderLayout.CENTER);
this.textArea.setSyntaxEditingStyle("text/dm");
}

RSyntaxTextArea textArea;
RTextScrollPane scrollPane;

在菜单中的项目中,我使用 setAccelerator() 来设置要使用它们的组合键。当我在文本区域中使用所述组合时,它们永远不会到达菜单项。我不记得以前遇到过这个问题,知道为什么现在会出现这种情况吗?

问题已解决(不想等 6 个小时来回答我自己的问题。):

我通过保留用于菜单的键映射列表,然后使用 JComponent 类的输入映射使文本区域忽略它们来解决了我的问题。

代码:

for(KeyStroke ks : this.mappedKeyStrokes) {
component.getInputMap().put(ks, "none");
}

最佳答案

When I use said combinations in the text area, they never reach the menu item [...] any ideas why it's happening?

这是(keyBindings)的设计:菜单绑定(bind)基本上是通过componentInputMap(== WHEN_IN_FOCUSED_WINDOW 类型的inputMap)处理的。输入映射按顺序提供

  • WHEN_FOCUSED
  • WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
  • WHEN_IN_FOCUSED_WINDOW

仅当之前未处理过时才传递到下一个队列。

关于java - JMenuBar 未从 RSyntaxTextArea 接收按键组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com