AWT でキーを検出する


AWT でキーを検出して、タイプされたキーコードを印字します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして KeyCheck.java の名前で保存して下さい。
    //★ キーの操作を検出する    前田 稔
    import java.awt.*;
    import java.awt.event.*;
    
    public class KeyCheck extends Frame implements KeyListener
    {
        // Main
        public static void main(String [] args)
        {   new KeyCheck();
        }
    
        // Constructor
        KeyCheck()
        {   super("Key Check");
            TextField tf1 = new TextField();
            tf1.addKeyListener(this);
            add(tf1);
            setSize(200, 100);
            show();
        }
    
        // KeyEvent Listener
        public void keyPressed(KeyEvent e)
        {   System.out.println("Press: " + e.getKeyText(e.getKeyCode()));
        }
        public void keyReleased(KeyEvent e)
        {   System.out.println("Release: " + e.getKeyText(e.getKeyCode()));
        }
        public void keyTyped(KeyEvent e)
        {   System.out.println("Type: " + e.getKeyChar());
        }
    }
    
  2. ソースプログラムをコンパイルして class オブジェクトを実行して下さい。
    キーをタイプするとコンソール画面にタイプしたキーが印字されます。

プログラムの説明

  1. class KeyCheck は Frame を継承しています。
    import java.awt.*;
    import java.awt.event.*;
    
    public class KeyCheck extends Frame implements KeyListener
    {
    
  2. main() では KeyCheck をインスタンス化(生成)するだけです。
        // Main
        public static void main(String [] args)
        {   new KeyCheck();
        }
    
  3. Constructor です。
    super("Key Check") で継承したクラスの Constructor を呼び出します。
    new TextField() でテキストフィールドを設定します。
    テキストフィールドに KeyListener を設定します。
    テキストフィールドを add して、show() で表示します。
        KeyCheck()
        {   super("Key Check");
            TextField tf1 = new TextField();
            tf1.addKeyListener(this);
            add(tf1);
            setSize(200, 100);
            show();
        }
    
  4. KeyEvent Listener のメソッドです。
    キー操作で発生するイベントには、次のようなものがあります。
    実際のアプリケーションでは、必要なイベントだけプログラミングして下さい。
        // KeyEvent Listener
        public void keyPressed(KeyEvent e)
        {   System.out.println("Press: " + e.getKeyText(e.getKeyCode()));
        }
        public void keyReleased(KeyEvent e)
        {   System.out.println("Release: " + e.getKeyText(e.getKeyCode()));
        }
        public void keyTyped(KeyEvent e)
        {   System.out.println("Type: " + e.getKeyChar());
        }
    }
    

超初心者のプログラム入門(Java2)