我正在制作一个监听 ctrl-1 和 ctrl-2 的 keylistener。
我正在为团队做一个测验。如果他们想回答,团队 1 应该按 ctrl-1。团队 2 如果他们想回答,应该按 ctrl-2。
我选择 ctrl 的原因是因为有 2 个控制键。因此 2 支球队可以在 1 个键盘上互相对抗。
我希望团队 1 使用左侧控件和 F1-F12 下的数字。团队 2 使用正确的控件和数字锁上的数字。
我的代码注册了团队 1 的触发器,但没有注册团队 2。这是我的代码:
public void keyPressed(KeyEvent e) {
if((QuizController)getController() != null){
if(e.getKeyCode () == KeyEvent.VK_1){
if((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)
System.out.println("Team 1");
}
if(e.getKeyCode () == KeyEvent.VK_2){
if((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)
System.out.println("Team 2");
}
}
}
编辑:我只是用键绑定做的,给出了同样的问题,这里是代码。
AbstractAction team1 = new AbstractAction() {
public void actionPerformed(ActionEvent arg0) {
System.out.println("Team 1");
}
};
AbstractAction team2 = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("Team 2");
}
};
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_1, java.awt.event.InputEvent.CTRL_DOWN_MASK),"actionMap1");
getActionMap().put("actionMap1", team1);
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_2, java.awt.event.InputEvent.CTRL_DOWN_MASK),"actionMap2");
getActionMap().put("actionMap2", team2);
谢谢!