フォーカスイベント


現在のフォーカス

Componentクラスは、フォーカスイベントも提供しています
フォーカスとは、現在キーボードの入力対象になっているコンポーネントを指します



Microsoft社の Windows 98 のボタンコントロールの例です
左側がフォーカスを得ている状態で、右が普通の状態です
このように、一般的なGUIシステムではフォーカスを得ているコンポーネントは外見も異なります

フォーカスリスナの登録はaddFocusListener()メソッドを使用します

public synchronized void addFocusListener( FocusListener l )

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

public abstract void focusGained( FocusEvent e )フォーカスを得た
public abstract void focusLost( FocusEvent e )フォーカスを失った

呼び出されるタイミングは、右記のとおりです
e に渡すのはjava.awt.event.FocusEventクラスのオブジェクトです
このクラスはComponentEventクラスを拡張しています
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

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

public class App61 extends Applet implements FocusListener {
	TextField tf[] = new TextField[10] , lost;
	public void init() {
		for(int i = 0 ; i < 10 ; i++) {
			add(tf[i] = new TextField(20));
			tf[i].addFocusListener(this);
		}
	}
	public void focusGained(FocusEvent e) {
		TextField tf = (TextField)e.getComponent();
		tf.setText("フォーカスを得ました");
	}
	public void focusLost(FocusEvent e) {
		if (lost != null) lost.setText("");
		lost = (TextField)e.getComponent();
		lost.setText("フォーカスを失いました");
	}
}
アプレット

テキストフィールドにフォーカスを合わせると、文字が出現します
同時に、その前に失われたテキストフィールドにも表示されます



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