此应用程序需要发送电动机移动命令,当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);
}