Nanashi-softプログラマ専用Javaアプリケーション


◇Javaアプリケーション-キー取得-

キーボード入力を取得します

◎ウィンドウのみの場合
ウィンドウを表示して、入力された文字を取得します

import java.awt.*;

public class fst extends Frame{
  public static final void main(final String[] args){
    //ウィンドウ生成
    Frame app=new Frame();
    //キー入力取得用設定
    KeyListener ekey=new KeyListener();
    app.addKeyListener(ekey);
    //ウィンドウ表示
    app.setVisible(true);
  }
}

//キー入力に関するクラス
class KeyListener extends KeyAdapter{
//キーを押した
  public void keyPressed(KeyEvent e){
    char c=e.getKeyChar();
    System.out.println("" + c);
  }
}

これをコンパイルして実行すると、ウィンドウが表示されます
キーボードから文字を入力した文字がコマンドラインに出力されます
但し、閉じるボタンが利きませんので、Ctrl+Cキーで強制停止させなければなりません

※[2006/08/19]ウィンドウ表示に app.show();とshowメソッドを使用すると警告が出てコンパイルできなくなりましたので修正

◎キャンバスがある場合
ウィンドウのみのアプリはそう無いと思います
通常はキャンバスなどを設置して表示しています

そういったコンポーネントを設置した場合、フォーカスがそちらに移ってしまい、キー入力が取得できない場合があります
そのような場合には、フォーカスが移るコンポーネントにもリスナーを設定すると良いでしょう

import java.awt.*;

public class fst extends Frame{
  public static final void main(final String[] args){
    //ウィンドウ生成
    Frame app=new Frame();
    //タイトル設定
    app.setTitle("Title");
    //ウィンドウサイズ設定(タイトルや枠も含んだサイズ)
    app.setSize(240, 240);
    //キー入力取得用設定(ウィンドウ側)
    KeyListener ekey=new KeyListener();
    app.addKeyListener(ekey);
    //キャンバスを配置
    fstCanvas cvs=new fstCanvas();
    app.add(cvs);
    //キー入力取得用設定(キャンバス側)
    cvs.addKeyListener(ekey);
    //ウィンドウ表示
    app.setVisible(true);
  }

  static class fstCanvas extends Canvas{
    public void paint(Graphics g){
      g.drawString("Hello World", 16, 16);
    }
  }
}

//キー入力に関するクラス
class KeyListener extends KeyAdapter{
//キーを押した
  public void keyPressed(KeyEvent e){
    char c=e.getKeyChar();
    System.out.println("" + c);
  }
}


TOPプログラマ専用Javaアプリケーション