Java:ショートカットをつけよう

Posted on

Frame.addKeyListener(KeyListener e)では取得できない!

とりあえず真っ先に思いつく方法としてキーイベントを使ってみる方法があると思うんですが・・・.

ここを見る限り,フレーム上にキーリスナを取得しそうなコンポーネントがあると,もうだめ.

JFrame#processKeyEventをオーバーライドしてみるが・・・しかし・・・駄目.

このメソッドでキー入力は全て処理しているはずですから,これをオーバーライドすれば良いに違いない!

というわけで,オーバーライドしてショートカット処理をしてみたのですが,どうも呼ばれません.

デバッガで確認済み.ここに通知が来ないということなんですね・・・.

InputMapを使え!

こちらを見てください.これのとおり,InputMapとActionMapを組み合わせて使えば,出来るのではないかな・・・と.

とりあえず実装してみました.

・・・お,出来る!カンペキです.

ただし,問題点があって,ShiftやAltなどの修飾キーだけでは使えません・・・.

これは仕方が無いですね・・・.逆に修飾キーが無くても使えるので,まあ十分でしょう.

ショートカットキーに必ず修飾キーをつけなくちゃいけないというのも面倒ですから.


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください