2012-01-20 6 views
2

Javaアプレットにキーボードショートカットを追加するにはどうすればよいですか?アプレットでのキーボードショートカットの追加

私はサークルに私の名前スピンを作るために割り当てを(私は栄誉コンピュータサイエンスを取っています)でした。 私は無限ループを使いました。終了するたびにタスクマネージャーに行き、プログラムを終了しなければなりません。アプレットを終了するショートカットを追加できますか?例えば

私はスペースバーを押した場合、それはプログラムの他の部分に変更されます。

私は、OracleのWebサイトで"How to Use Key Bindings"の上に見えたが、私はそれを理解できませんでした。

+2

を*「私は、タスクマネージャに移動し、プログラムを終了する必要があり、私はアプレットを終了するショートカットを追加できますか?」*トグルボタンを入れて停止/開始のための北へ。 BTW - アプリでできることすべてについて。この状況は、フォーカスのために少し難解です(アプレットには入力フォーカスがない可能性があり、フォーカスできないとマークされている可能性があります)。 –

答えて

3

(あなたはJAppletのを作成している場合)あなたはスイングを使用している場合は、[はい、キーバインディングは、移動するための方法です。彼らはあなたを混乱させますか?

ところで、これはあなたの質問に直接関係していないことを知っていますが、あなたのアプレットがSwing JAppletであれば、無限ループを使ってアニメーションを行うのではなく、スイングタイマー。無限ループを使用する場合、a)バックグラウンドスレッドで無限ループを行い、b)Swingイベントディスパッチスレッド(またはEDT)でループ内からほとんどのSwing呼び出しを行い、それ以外の場合はmainスイングスレッド。スイングタイマーはこれをすべて行いますので、使いやすくなります。

+0

遅く返事をして申し訳ありません。私はキーバインディングをプログラムに追加する方法を理解していません。キーバインディングを取得するためにコーディングに追加する必要がある例を教えてください。 –

+0

@ the_pwner224:Google for the Key Bindingsチュートリアルでは、知っておく必要があることをすべて表示します。あなたが立ち往生した場合は、戻って来てください。 –

+0

@ the_pwner224:編集:私は今あなたが既にリンクを持っていることを覚えていますが、あなたが言うことは、あなたが理解していないことですが、具体的な質問がなければ、このチュートリアルを再読んだことを示唆する以外に、あなたを助けることはできません。もっと具体的な質問をすることを検討してください。 –

1

すべてのことチュートリアルでは、キーバインディングを作成するためにKeyStroke、いくつかのキーObject、およびActionが必要であることを言っています。

KeyStrokeを作成するには、静的helper methodsをご覧ください。正しいKeyStrokeを取得する方法を説明する必要があります。

あなたは、キー(Object key = new Object())として古いObjectを使用することができます。

あなたが必要とする最後の事はあなたのActionを作成することです。私はActionの方法の多くを既に実装しているので、AbstractActionを拡張することをお勧めします。一緒に結合あなたの鍵を入れて

は、次のようにします。

JComponent c = ... 
KeyStroke keyStroke = ... 
Object key = ... 
Action a = ... 

c.getInputMap().put(keyStroke, key); 
c.getActionMap().put(key, a); 
+0

[Hovercraft Full of Eels](http://stackoverflow.com/a/8935481/758280)答えて、あなたはスイングタイマーの使用を検討する必要があります。 – Jeffrey

+1

混乱の1つの点は、 'getInputMap(int condition)'オーバーライドの使用です。時には、私は元のポスターのケースでは、おそらく 'JComponent.WHEN_IN_FOCUSED_WINDOW'と思われる適切な条件を使用するいくつかの実験が必要です。このチュートリアルではかなり説明しています。 1+票。 –

+0

@HovercraftFullOfEelsおっと、忘れてしまった。 – Jeffrey

関連する問題