キー入力(キーイベント)サンプル

Javaアプレットのキー入力(キーイベント)のサンプルです。

Home > サンプル集 > アプレットサンプル集 > キー入力(キーイベント)サンプル


キー入力(キーイベント)サンプル

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. キー入力(キーイベント)のサンプル ( ButtonSample01.java )  

■キー入力のサンプル

[ サンプルプログラムのソースコード - KeySample01.java - ]
  1. import java.awt.Graphics;
  2. import java.awt.event.KeyEvent;
  3. import java.awt.event.KeyListener;
  4. import javax.swing.JApplet;
  5. public class KeySample01 extends JApplet implements KeyListener {
  6.   private static final long serialVersionUID = 1L;
  7.   String message = "まだキーは、押されてないよ";
  8.   public void init() {
  9.     addKeyListener(this);
  10.   }
  11.   public void paint(Graphics g) {
  12.     g.clearRect(0, 0, getWidth(), getHeight());
  13.     g.drawString(message, 10, 10);
  14.   }
  15.   public void update(Graphics g){
  16.     paint(g);
  17.   }
  18.   public void keyPressed(KeyEvent e) {
  19.     message = "押されたキーは、"
  20.       + KeyEvent.getKeyText(e.getKeyCode())+ "だよ";
  21.     repaint();
  22.   }
  23.   public void keyReleased(KeyEvent e) {
  24.   }
  25.   public void keyTyped(KeyEvent e) {
  26.   }
  27. }
上記のプログラムは、下のような書き方も出来ます。
[ サンプルプログラムのソースコード - KeySample01B.java - ]
  1. import java.awt.Graphics;
  2. import java.awt.event.KeyAdapter;
  3. import java.awt.event.KeyEvent;
  4. import javax.swing.JApplet;
  5. public class KeySample01B extends JApplet {
  6.   private static final long serialVersionUID = 1L;
  7.   String message = "まだキーは、押されてないよ";
  8.     
  9.   public void init() {
  10.     addKeyListener(new KeyAdapter(){
  11.       public void keyPressed(KeyEvent e) {
  12.         message = "押されたキーは、"
  13.                 + KeyEvent.getKeyText(e.getKeyCode())+ "だよ";
  14.         repaint();
  15.       }
  16.     });
  17.   }
  18.   public void paint(Graphics g) {
  19.     g.clearRect(0, 0, getWidth(), getHeight());
  20.     g.drawString(message, 10, 10);
  21.   }
  22.   public void update(Graphics g){
  23.     paint(g);
  24.   }
  25. }
[ サンプルプログラムの実行結果 ]
実行結果を見るには下のボタンをクリックしてください。
押されたキーの名前を表示します。
※実行結果は、別ウィンドウで開きます。実行には時間がかかることがありますのでご注意ください。

[ サンプルプログラムの解説 ]
アプレットでキー入力(キーイベント)を検知するには、キーリスナーリスナーをインプリメント(9行目)します。 そしてアプレットの初期化メソッドでキーリスナーの登録(15行目)を行います。 キーリスナーをインプリメントした場合、それぞれ下記のメソッドを追加して処理の記述をおこないます。
メソッド内に実行したい処理が無い場合(例えば、キーを離したときに行う処理が何も無いときなど)は、メソッドだけ用意して中身は、 空にしておきます。メソッドを用意しておかないとコンパイルエラーとなります。
キーリスナーをインプリメントした時に追加するメソッド
・public void keyPressed(KeyEvent e) … キーを押している時に行う処理を記述する
・public void keyReleased(KeyEvent e) … キーを離した時に行う処理を記述する
・public void keyTyped(KeyEvent e) … キーを入力している時に行う処理を記述する
メソッドの中で、どのキーが押されたのかif分を使って判定します。
キー入力(キーイベント)処理を記述する時の大体の構造は、下のような感じになります。
  1. public class [アプレットの名前] extends JApplet implements KeyListener {
  2.   Button [ボタンオブジェクトのオブジェクト変数名] = new Button();
  3.   public void init() {
  4.     addKeyListener(this);
  5.   }
  6.   public void keyPressed(KeyEvent e) {
  7.     if ( e.getKeyCode() == [検知したいキーを表すKeyEventクラスの静的変数]) {
  8.       [検知したキーを押している時の処理を記述]
  9.     }
  10.     repaint();
  11.   }
  12.   public void keyReleased(KeyEvent e) {
  13.     if ( e.getKeyCode() == [検知したいキーを表すKeyEventクラスの静的変数]) {
  14.       [検知したキーを離した時の処理を記述]
  15.     }
  16.     repaint();
  17.   }
  18.   public void keyTyped(KeyEvent e) {
  19.     if ( e.getKeyCode() == [検知したいキーを表すKeyEventクラスの静的変数]) {
  20.       [検知したキーを入力した時の処理を記述]
  21.     }
  22.     repaint();
  23.   }
  24.   public void paint(Graphics g) {
  25.     [描画処理等]
  26.   }
  27. }





最終更新日:2019/02/13

2015-03-01からの訪問者数
  3657 人