コンポーネントイベント
コンポーネントの状態
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()が呼び出されます