- クラス「TestKey」の作成
-
↓のソースを記述して「Test」フォルダに「TestKey.java」というファイル名で保存。
1行目〜6行目はインポート文。01 : import java.awt.Frame;
02 : import java.awt.TextField;
03 : import java.awt.event.ActionEvent;
04 : import java.awt.event.ActionListener;
05 : import java.awt.event.KeyEvent;
06 : import java.awt.event.KeyAdapter;
07 :
08 : public class TestKey{
09 : TextField tf1 = new TextField("Java");
10 :
11 : public static void main(String[] args){
12 : TestKey tk = new TestKey();
13 : tk.Frame1();
14 : }
15 :
16 : public void Frame1(){
17 : Frame f1 = new Frame("Javaプログラム");
18 : f1.setBounds(0,0,200,200);
19 : tf1.setBounds(50,70,120,20);
20 : f1.setLayout(null);
21 : f1.add(tf1);
22 : f1.setVisible(true);
23 :
24 : TestActionListener al = new TestActionListener();
25 : tf1.addActionListener(al);
26 : TestKeyListener kl = new TestKeyListener();
27 : tf1.addKeyListener(kl);
28 : }
29 :
30 : class TestActionListener implements ActionListener{
31 : public void actionPerformed(ActionEvent e){
32 : System.out.println(tf1.getText());
33 : }
34 : }
35 :
36 : class TestKeyListener extends KeyAdapter{
37 : public void KeyPressed(KeyEvent e){
38 : int KeyCode = e.getKeyCode();
39 : }
40 : }
41 : }
9行目は「Java」という文字列を持ったテキストフィールドのインスタンスを作成しています。
11行目〜14行目はメイン文で、自分自身のインスタンスを作成してイベントソース(メソッド「frame1」)を実行しています。
16行目〜28行目はイベントソース(メソッド「frame1」)を作成しています。
17行目〜22行目で「テキストフィールド」を持った「フレーム」を表示しています。
24行目はイベントリスナ(クラス「TestActionListener」)のインスタンスを作成しています。
25行目はイベントソースにイベントリスナを登録しています。
26行目はイベントリスナ(クラス「TestTestKeyListener」)のインスタンスを作成しています。
27行目はイベントソースにイベントリスナを登録しています。
30行目〜31行目はイベントリスナ(クラス「TestActionListener」)を作成。 30行目の「implements ActionListener」は「インターフェイス」の実装。「インターフェイス」についてはまだ勉強していのであまりよくわかりません・・・。
31行目〜33行目はメソッド「actionPerformed」を使って、アクションイベントが発生した場合にテキストフィールドの文字を取得してコマンドプロントに表示されるように指定しています。(テキストフィールドの文字はメソッド「getText()」で取得しています。)
36行目〜40行目はイベントリスナ(クラス「TestKeyListener」)を作成。
36行目の「extends KeyAdapter」はKeyAdapterクラスのサブクラスとして定義。サブクラスについてもまだ勉強していないのであまりよくわかりません。
37行目〜39行目はメソッド「KeyPressed」を使って押されたキーの情報を取得しています。
- コンパイル→実行
-
コマンドプロントを開いて「TestKey.java」をコンパイルして実行
コマンドプロントの画面は↓のようになりました。C;¥Document and setting¥〜>cd ¥Test実行すると「Java」という文字を持ったテキストフィールドが配置されたがフレームが表示され、キーボードの「Enter」をクリックする度にコマンドプロントに文字列「Java」が表示されました。さらに、キーボードを入力してから「Enter」を押すと入力した文字も表示されました。
C;¥Test>javac TestKey.java
C;¥Test>java TestKey
Java
aaaaJava
押されたキーの情報の取得方法がイマイチわからないのですがとりあえずできたので良しとしておきます。
【キーイベントの処理】の復習
キーイベントの処理 の復習です。
コメントを書く