简单的关键听众

时间:2014-02-06 06:04:03

标签: java swing keyboard keylistener key-bindings

好吧,所以我正在制作一个简单的乒乓球比赛作为我的第一个真正的Java项目。 JFrame底部的“球拍”可以正常工作,除了运动部分。我需要能够从键盘读取输入。我知道这可以通过KeyListener(我认为)方法来完成; Java文档网站告诉我,我可以将某些键绑定到某些操作。哪种方式最有效/最容易;如果是这样,实施它的最简单方法是什么?我意识到它并不像

那么简单
if(keypressed == VK_LEFT) 
    do something

但是我一直在努力想要解决这些问题。请帮忙?

1 个答案:

答案 0 :(得分:4)

Key Bindings通常是首选的方法,并且往往不那么麻烦

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

im.put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK), "left");
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK), "right");

am.put("left", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // Code to go left
    }
});
am.put("right", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // Code to right
    }
});

真正酷的是,如果您将Action创建为单独的类,则可以在Action上使用相同的JButton