コンポーネントのFocusEventが失われたか取得されたかを検出する

StackOverflow https://stackoverflow.com/questions/334397

  •  22-07-2019
  •  | 
  •  

質問

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

を返します
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top