gpt4 book ai didi

Java Swing : consuming key events

转载 作者:搜寻专家 更新时间:2023-11-01 02:24:47 25 4
gpt4 key购买 nike

我有一个 JFrame(包含各种文本字段和表格等),我想安装一个热键功能,该功能在框架打开时应用(有点像菜单加速器快捷方式)。以下大部分工作,无论哪个字段或控件具有焦点,我的操作都会被调用:

String MY_GLOBAL_ACTION_TRIGGER = "hotKey";
InputMap im = getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
KeyStroke ks = KeyStroke.getKeyStroke('`');
im.put(ks, MY_GLOBAL_ACTION_TRIGGER);
ActionMap am = getRootPane().getActionMap();
am.put(MY_ACTION_TRIGGER, new AbstractAction() { public void actionPerformed() ... });

但是,按键没有消耗,我仍然在文本字段中插入反引号。调用我的操作后,如何防止按键被传播到文本字段?

最佳答案

使用 KeyboardFocusManager 和 KeyEventDispatcher

private void myListener implements KeyEventDispatcher {
public boolean dispatchKeyEvent (KeyEvent ke) {
if (ke.getKeyChar() == '`') {
MY_GLOBAL_ACTION.actionPerformed(null);
return true;
}
return false;
}
}

关于Java Swing : consuming key events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626596/

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