等待使用 Java 中的键绑定按下的键

问题描述

我是用 Swing Java 编写问答游戏的初学者,我希望用户通过按一个键来回答问题。 我无法让程序等到按下某个键。


我尝试调用方法,然后使用 Getter 方法对 answer1 进行 while 循环以“暂停”程序,直到变量是我想要的答案,但当我这样做时程序就冻结了。


搜索了很多,但没有任何效果。 下面是代码示例:

public static void addKeyBinding(int keyCode,String id,ActionListener lambda){
    InputMap im = GUI().getInputMap(WHEN_IN_FOCUSED_WINDOW);
    ActionMap am = GUI().getActionMap();
    im.put(Keystroke.getKeystroke(keyCode,false),id);
    am.put(id,new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
            lambda.actionPerformed(e);
        }
    });
}


public char keyOperationSinglePlayer(){
    addKeyBinding(KeyEvent.VK_A,"A",(evt) -> {
        answer1 = 'a';
    });

    addKeyBinding(KeyEvent.VK_S,"S",(evt) -> {
        answer1 = 'b';
    });
    addKeyBinding(KeyEvent.VK_D,"D",(evt) -> {
        answer1 = 'c';
    });
    addKeyBinding(KeyEvent.VK_F,"F",(evt) -> {
        answer1 = 'd';
    });
    return answer1;
}`

谢谢

public class GUI extends JPanel

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)