此應用程序需要發送電動機移動命令,當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);
}