0

Component.requestFocus() の呼び出しとコンポーネントへの手動フォーカス (たとえば、キーボードやマウスを使用してフォーカスする) の両方で、FocusEvent.FOCUS_GAINED がトリガーされます。

AWT イベントをリッスンしています。

私の質問は:

FocusEvent.FOCUS_GAINED イベントが Component.requestFocus() の呼び出しによるものか、マウス/キーボードで手動でフォーカスしたものかを知るにはどうすればよいですか?

4

1 に答える 1

1

requestFocus を使用すると、そのコンポーネントにフォーカスしようとしますが、ドキュメントに関しては

http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#requestFocus()

requestFocusInWindow(boolean) http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#requestFocusInWindow(boolean)を使用することをお勧めします


コンポーネントがフォーカスを取得したかどうかを確認するには、FocusListener を実装し、次のメソッドをオーバーライドする必要があります。

public void focusGained(FocusEvent e) {
    displayMessage("Focus gained", e);
}

public void focusLost(FocusEvent e) {
    displayMessage("Focus lost", e);
}
于 2013-10-16T07:30:27.943 に答える