好吧,所以我正在制作一个简单的乒乓球比赛作为我的第一个真正的Java项目。 JFrame底部的“球拍”可以正常工作,除了运动部分。我需要能够从键盘读取输入。我知道这可以通过KeyListener(我认为)方法来完成; Java文档网站告诉我,我可以将某些键绑定到某些操作。哪种方式最有效/最容易;如果是这样,实施它的最简单方法是什么?我意识到它并不像
那么简单if(keypressed == VK_LEFT)
do something
但是我一直在努力想要解决这些问题。请帮忙?
答案 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
!