gpt4 book ai didi

java - Java中的自定义键盘快捷键

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:11 25 4
gpt4 key购买 nike

我正在开发一个 java swing 应用程序。我想添加一个键盘快捷键,比如 CTRL + H。这应该执行与单击时 jButton1 执行的操作相同的操作。

即使 jButton1 未获得焦点,此快捷方式的行为也应相同。

我尝试使用 KeyEventDispatcher,但它似乎对我不起作用。还有别的办法吗?

最佳答案

好的 - 首先,我不认为有一种方法可以在 Java Swing 中设置应用程序范围的快捷方式(请参阅此 question)。但对于组件而言,这是可能的。

您必须为 KeyStroke 创建一个 Action。但是对于 Windows,我发现这个库非常 helpful .

    {
KeyStroke cancelKeyStroke = KeyStroke
.getKeyStroke((char) KeyEvent.VK_ESCAPE);
Keymap map = JTextComponent.getKeymap(JTextComponent.DEFAULT_KEYMAP);
map.addActionForKeyStroke(cancelKeyStroke, cancelKeyAction);
}
private static Action cancelKeyAction = new AbstractAction() {
public void actionPerformed(ActionEvent ae) {
Component comp = (Component) ae.getSource();
Window window = SwingUtilities.windowForComponent(comp);
if (window instanceof Dialog) {
window.dispose();
} else if (comp instanceof JTextComponent
&& !(comp instanceof JFormattedTextField)) {
JTextComponent tc = (JTextComponent) comp;
int end = tc.getSelectionEnd();
if (tc.getSelectionStart() != end) {
tc.setCaretPosition(end);
}
}
}
};

关于java - Java中的自定义键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529195/

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