Я делаю прослушиватель клавиш, который слушает ctrl-1 и ctrl-2.
Я делаю викторину для команд. Команда 1 должна нажать Ctrl-1, если они хотят ответить. Команда 2 должна нажать Ctrl-2, если они хотят ответить.
Причина, по которой я выбрал ctrl, заключается в том, что есть 2 клавиши управления. Таким образом, 2 команды могут играть друг против друга на 1 клавиатуре.
Я хочу, чтобы команда 1 использовала левое управление и числа под F1-F12. И команда 2, чтобы использовать правый контроль и цифры на numlock.
Мой код регистрирует триггеры команды 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);
Благодарю вас!