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);
}