Это приложение должно отправить команду перемещения двигателя, когда кнопка GUI или нажата клавиша со стрелкой, и команда остановки двигателя, когда кнопка GUI или освобождена клавиша со стрелкой. Эти привязки отлично работают для стрелки вниз, пока не будет нажата соответствующая кнопка GUI. После нажатия кнопки GUI клавиша со стрелкой игнорируется. Если это изменение фокуса, которое убило привязку, как можно привязать привязки к независимости от фокусов фокуса? Если нет, то какова реальная проблема и как она ремонтируется?Почему ключевые привязки умирают?
Ключевые Наручники
Action tiltStop = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
MotorStop(TILT_AXIS);
}
};
mainPanel.getInputMap().put(KeyStroke
.getKeyStroke(KeyEvent.VK_DOWN, 0, true), "tiltStop");
mainPanel.getActionMap().put("tiltStop", tiltStop);
Action tiltDown = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
MotorMove(TILT_AXIS, NEGATIVE_DIR);
}
};
mainPanel.getInputMap().put(KeyStroke
.getKeyStroke(KeyEvent.VK_DOWN, 0, false), "tiltDown");
mainPanel.getActionMap().put("tiltDown", tiltDown);
кнопки GUI
private void jButtonAxisDownMousePressed(java.awt.event.MouseEvent evt) {
MotorMove(TILT_AXIS, NEGATIVE_DIR);
}
private void jButtonAxisDownMouseReleased(java.awt.event.MouseEvent evt) {
MotorStop(TILT_AXIS);
}