フォーカスイベント
現在のフォーカス
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("フォーカスを失いました");
}
}
テキストフィールドにフォーカスを合わせると、文字が出現します
同時に、その前に失われたテキストフィールドにも表示されます