目次へ

9.5. キーボードとの連携

キーボードから入力があった場合に、何らかの動作をするようにできます。最も簡単なのは「ニーモニック」を利用する事です。ニーモニックはメニューやボタン・ラジオボタン等に設定する事ができ、設定した文字を「Alt」キーと共に押すと、該当するボタンを押した事と同等の動作が行われます。

JButton button=new JButton("push");
button.setMnemonic('p');

メニューの場合は、いちいち階層を辿っていく事が面倒な場合があります。そのような場合にショートカットを設定できます。

JMenuItem menuItem=new JMenuItem("menu");
menuItem.setAccelerator(KeyStroke.getStroke(KeyEvent.VK_A,Event.CTRL_MASK));

上の例の場合は「Ctrl+A」を押したら、該当するメニューが選択された事と同等の動作が行われます。「setAccelerator」メソッドがメニューにショートカットを設定するメソッドです。「javax.swing.KeyStroke」クラスのインスタンスを引数として渡しますが、これは「getStroke」staticメソッドで生成します。引数には「java.awt.KeyEvent」クラスのクラス変数および「java.awt.Event」クラスのクラス変数を与えます。1つ目の引数でどのキーを押すか、2つ目の引数で同時に押されるファンクションキーを指定します。2つ目の引数を省略した場合は、ファンクションキーを押さない事に相当します。

それ以外で複雑な動作を実装したい場合は「java.awt.event.KeyListener」を利用します。「addKeyListener」で「KeyListener」を実装したクラスのインスタンスを渡し、そのクラスでキーイベントの処理を行います。

(実習課題6)

実習課題5のプログラムを改良しなさい。

  • 2つのボタンにニーモニックを指定する事。
  • ウィンドウの上でキーを押したら(どのキーでも良い)、バーの伸びが停止するようにする事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp