调用 Component.requestFocus() 和手动聚焦某个组件(例如,使用键盘或鼠标聚焦)都会触发 FocusEvent.FOCUS_GAINED。
我正在监听 AWT 事件。
我的问题是:
我怎么知道 FocusEvent.FOCUS_GAINED 事件是通过调用 Component.requestFocus() 还是通过鼠标/键盘手动聚焦它?
最佳答案
当您使用 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);
}
关于java - Component.requestFocus 和手动对焦有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19397494/