2

特定の関数をゲームキーにマップするために、lwuit で keypressed メソッドと release メソッドをオーバーライドする必要があるアプリケーションを開発しています。

これを行うとゲームキーは正常に機能しますが、アプリケーションに 3 つ以上のコマンドを追加するのに問題があります。通常、actionlistener は複数のコマンドのマッピングを自動的に処理しますが、そうではありません。

複数のコマンドをソフトキーにマップし (keycode -7 のように)、if ステートメントを使用してどのコマンドが押されたかを動的にチェックすることは可能ですか?

 public void keyReleased(int keyCode) {

      switch (keyCode) {
        case -6: // left cmd key
             function a();
            return;
        case -7: // right cmd key
//Need this to handle more than one command function

            return;

    }
   //function to handle gamekeys
}

私の問題について十分に明確であることを願っています。助けてください

4

2 に答える 2

0

MenuBarカスタム キー/メニュー処理を行う場合は、クラスを置き換える必要があります。をサブクラス化し、MenuBar内で新しいクラスを定義するだけLookAndFeelです。

于 2013-11-29T07:27:00.317 に答える
0

私の意見では、あなたがやりたいことは不可能です。ソフトキーには常にキャンセル コマンドがあり、他のソフトキーにはメニュー (複数のコマンドが追加されている場合) があります。

正しい を取得するには、keyCode別の機能をソフトキーに設定するには、正しい を取得する必要がありますkeyCodeSystem.out.println("keycode " + keyCode);メソッド keyReleased の最初の行の前にa を作成します

于 2013-11-21T14:13:26.153 に答える