gpt4 book ai didi

Java 键绑定(bind)到相同的操作

转载 作者:行者123 更新时间:2023-11-29 06:32:32 26 4
gpt4 key购买 nike

我试图通过使用通用 Action 来减少处理键盘按下/释放所需的代码量,同时仍然使用 InputMap/ActionMap 范例(需要单独的按下/释放信息)。

我要解决的问题是如何从ActionEvent中获取keyPressed/keyReleased信息。

    KeyStroke rKeyStrokeReleased = KeyStroke.getKeyStroke(KeyEvent.VK_R,
0, true);
KeyStroke rKeyStrokePressed = KeyStroke.getKeyStroke(KeyEvent.VK_R,
0, false);

Action rAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
// How do I get the pressed/release information here?
System.out.println(e);
}
};

getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
rKeyStrokeReleased, "R_RELEASED");
getRootPane().getActionMap().put("R_RELEASED", rAction );

getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
rKeyStrokePressed, "R_PRESSED");
getRootPane().getActionMap().put("R_PRESSED", rAction);

最佳答案

how to get the keyPressed/keyReleased information from the ActionEvent.

您无法从 ActionEvent 中获取信息。

您可以从EventQueue中获取信息:

EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
AWTEvent event = queue.getCurrentEvent();
System.out.println(event.getID());

关于Java 键绑定(bind)到相同的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496199/

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