Java中的KeyPressed事件


问题内容

我刚刚创建了一个Java井字游戏,我想弄清楚在特定条件下按下Enter键后如何运行方法,下面是一个示例…

if(/*condition is met*/){
     //keyListener
}

问题答案:

根据要在何处捕获“
enter”键,可以使用ActionListener(在诸如文本组件或按钮之类的组件上)或将键绑定附加到组件上

public class MyPanel extends JPanel {

    public MyPanel() {

        InputMap im = getInputMap(WHEN_FOCUSED);
        ActionMap am = getActionMap();

        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onEnter");

        am.put("onEnter", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // Enter pressed
            }
        });

    }

}

这将取决于所关注的组件。