コンポーネントイベント


コンポーネントの状態

Componentクラスには、コンポーネントの状態で発生するイベントがあります
コンポーネントそのものが、隠されたり表示されたりすることでイベントが発生します

コンポーネントリスナの登録は、ComponentクラスのaddComponentListener()メソッドを使用します

public synchronized void addComponentListener( ComponentListener l )

l に渡すのはjava.awt.event.ComponentListenerインターフェイスです
このインターフェイスでは、次のメソッドを宣言しています

public abstract void componentHidden( ComponentEvent e )コンポーネントの非表示
public abstract void componentMoved( ComponentEvent e )コンポーネントの移動
public abstract void componentResized( ComponentEvent e )コンポーネントのサイズの変更
public abstract void componentShown( ComponentEvent e )コンポーネントの表示

呼び出されるタイミングは、右に記したとおりです
この時java.awt.event.ComponentEventクラスオブジェクトを受け取ります
このクラスについては、詳細を知る必要はないでしょう
イベント元となったコンポーネントを知りたい時にgetComponent()メソッドを使用する程度です

public Component getComponent()

イベント元となったコンポーネントを返します
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

/*	<applet code="test.class" width="300"height="300">
 	</applet>
*/

public class test extends Applet implements ComponentListener {
	public void init() {
		addComponentListener(this);
	}

	public void componentHidden(ComponentEvent e) {
		System.out.println("Hidden");
		setLocation(10 , 10);
	}
	public void componentMoved(ComponentEvent e) {
		System.out.println("Moved");
	}
	public void componentResized(ComponentEvent e) {
		System.out.println("Resize");
	}
	public void componentShown(ComponentEvent e) {
		System.out.println("Shown");
	}
}
標準出力を使用して確認しているので、アプレットビューワなどで実行してください
componentHidden()イベントで、setLocationを用いてコンポーネントサイズを変更しています
最初にコンポーネントが隠されると、同時にcomponentMoved()が呼び出されます



前のページへ戻る次のページへ