调用Component.requestFocus()并手动关注组件(例如,使用键盘或鼠标聚焦于它)都将触发FocusEvent.FOCUS_GAINED。
我正在听AWT赛事。
我的问题是:
我怎么知道FocusEvent.FOCUS_GAINED事件来自调用Component.requestFocus()还是通过鼠标/键盘手动关注它?
答案 0 :(得分: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);
}