EventQueue を実装し、AWTEvents が送信されたときに通知を受け取ります。FocusEvent のインスタンスが dispatchEvent メソッドに送信されるまで待ちます。
FocusEvent 自体には、コンポーネントのフォーカスが得られたか失われたかを確認するメソッドがありません。メソッドparamStringは、情報が配置されている文字列を返しますが、文字列をハッキングまたは解析したくありません。contains 呼び出しで答えを得ることができますが、戻り文字列は定数ではないため、将来変更される可能性があります。
FocusEvent の paramString メソッドは次のようになります。
switch(id) {
case FOCUS_GAINED:
typeStr = "FOCUS_GAINED";
break;
case FOCUS_LOST:
typeStr = "FOCUS_LOST";
break;
default:
typeStr = "unknown type";
}
return typeStr + (temporary ? ",temporary" : ",permanent") +
",opposite=" + getOppositeComponent();
この問題の別の解決策を知っていますか。