Это приложение должно отправлять команду перемещения двигателя, когда кнопка 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);
Кнопки графического интерфейса пользователя
private void jButtonAxisDownMousePressed(java.awt.event.MouseEvent evt) {
MotorMove(TILT_AXIS, NEGATIVE_DIR);
}
private void jButtonAxisDownMouseReleased(java.awt.event.MouseEvent evt) {
MotorStop(TILT_AXIS);
}