| Java Step_9 イベント |
| イベントの種類 |
| イベントソース | アクション | イベント |
| ラベル | フォーカスをほかのGUIコンポーネントに移す | FocusEvent |
| ラベルをクリックする | ActionEvent | |
| マウスで操作する | MouseEvent | |
| ボタン | フォーカスをほかのGUIコンポーネントに移す | FocusEvent |
| ボタンをクリックする | ActionEvent | |
| マウスで操作する | MouseEvent | |
| テキストフィールド | Enterキーを押す | ActionEvent |
| フォーカスをほかのGUIコンポーネントに移す | FocusEvent | |
| インプメソッドでテキスト入力する | InputMethodEvent | |
| キーボードから入力する | KeyEvent | |
| マウスで操作する | MouseEvent | |
| テキストを変更する | TextEvent | |
| テキストエリア | フォーカスをほかのGUIコンポーネントに移す | FocusEvent |
| インプメソッドでテキスト入力する | InputMethodEvent | |
| キーボードから入力する | KeyEvent | |
| マウスで操作する | MouseEvent | |
| テキストを変更する | TextEvent |
| イベントリスナー |
| イベント | イベントリスナー |
| ActionEvent | ActionListener |
| FocusEvent | FocusListener |
| InutMethodEvent | InutMethodListener |
| KeyEven | KeyEventListener |
| MouseEvent | MouseListener MouseMotionListener |
| TextEven | TextListener |
| インターフェース |
<インタフェース定義>
interface インターフェース名 {
定数宣言;
抽象メソッド宣言;
}
<インターフェース定義の例>
interface InterA {
int INTERA_X = 200;//必ず初期化する
void intera_meth(int a);//処理本体がない
}
<クラス定義時にインターフェースを実装>
class クラス名 implements インターフェース名,インターフェース名,.. {
抽象メソッド名
処理定義 {
}
<インターフェース実装の例>
class クラス名 implements InterA{
public void intera_meth(int a){
...........;//抽象メソッドの処理本体を定義
}
...........;
}
|
//ボタンを押してDOSプロンプトにボタンを表示する
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;//イベント関連クラスのパッケージ
class ButtonEvent1{
public static void main(String args[]){
//JFrameのインスタンスを生成しJFrameクラス型の変数 f に代入
JFrame f = new JFrame("ButtonEvent1");//
//ウィンドウをクローズしたら終了する
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
//フレームのコンテナ(GUIコンポーネントを配置するオブジェクト)を得る
Container c = f.getContentPane();
//JButtonのインスタンスを生成
JButton b = new JButton("Click");
//自作のイベントリスナー「クラス」myListener1のコンストラクタで
//インスタンスを作成している。(インスタンス=クラス名と同名のメソッド)
myListener1 m1 = new myListener1();
//JButtonクラスのメソッド
//引数のActionListenerインスタンスm1をボタンbに登録
b.addActionListener(m1);
c.add(b);
f.pack();
f.setVisible(true);
}
}
//ActionListenerインターフェースのイベント処理メソッドの本体
class myListener1 implements ActionListener{
public void actionPerformed(ActionEvent ae){
System.out.println("ボタンがクリックされました");
}
}
|
|
//押されたボタンを判別する
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;//イベント関連クラスのパッケージ
class ButtonEvent2{
public static void main(String args[]){
//JFrameのインスタンスを生成しJFrameクラス型の変数 f に代入
JFrame f = new JFrame("ButtonEvent2");//
//ウィンドウをクローズしたら終了する
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
//フレームのコンテナ(GUIコンポーネントを配置するオブジェクト)を得る
Container c = f.getContentPane();
//JButtonのインスタンスを生成(複数ボタンを作る)
JButton ba = new JButton("ボタンA");
JButton bb = new JButton("ボタンB");
//自作のイベントリスナー「クラス」myListener1のコンストラクタで
//インスタンスを作成している。(インスタンス=クラス名と同名のメソッド)
myListener2 m1 = new myListener2();
//それぞれのボタンに同じイベントリスナーを登録する
//ボタンA にイベントリスナーを登録
ba.addActionListener(m1);
//ボタンB にイベントリスナーを登録
bb.addActionListener(m1);
c.add(ba,BorderLayout.WEST);
c.add(bb,BorderLayout.EAST);
f.pack();
f.setVisible(true);
}
}
//ActionListenerインターフェースのイベント処理メソッドの本体
class myListener2 implements ActionListener{
public void actionPerformed(ActionEvent ae){
//ae ←ActionEventオブジェクトが入っている
//
String bname = ae.getActionCommand();
System.out.println(bname + "がクリックされました");
}
}
|