コンポーネントのFocusEventが失われたか取得されたかを検出する
質問
EventQueueを実装し、AWTEventsが送信されると通知を受けます。 FocusEventのインスタンスがdispatchEventメソッドに送信されるまで待機します。
FocusEvent自体には、コンポーネントのフォーカスが取得されたか失われたかを尋ねるメソッドがありません。 paramStringメソッドは、情報が格納されているStringを返しますが、このStringをハッキングしたり解析したりしたくないのです。 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();
この問題の別の解決策を知っていますか。
解決
" evt.getID()"の何が問題になっていますか? FOCUS_LOST
または FOCUS_GAINED
?
所属していません StackOverflow