Java 什么';这是Component.requestFocus和manually focus之间的区别
调用Component.requestFocus()和手动聚焦组件(例如,使用键盘或鼠标聚焦组件)都会触发FocusEvent.focus\u 我正在听AWT的节目 我的问题是:Java 什么';这是Component.requestFocus和manually focus之间的区别,java,swing,events,awt,Java,Swing,Events,Awt,调用Component.requestFocus()和手动聚焦组件(例如,使用键盘或鼠标聚焦组件)都会触发FocusEvent.focus\u 我正在听AWT的节目 我的问题是: 我怎么知道FocusEvent.FOCUS\u获得的事件是通过调用Component.requestFocus()还是通过鼠标/键盘手动关注它?使用requestFocus时,您试图关注该组件,但涉及文档 最好使用requestFocusInWindow(布尔值) 为了检查组件是否已获得焦点,必须实现FocusL
我怎么知道FocusEvent.FOCUS\u获得的事件是通过调用Component.requestFocus()还是通过鼠标/键盘手动关注它?使用requestFocus时,您试图关注该组件,但涉及文档 最好使用requestFocusInWindow(布尔值)
为了检查组件是否已获得焦点,必须实现FocusListener并重写以下方法
public void focusGained(FocusEvent e) {
displayMessage("Focus gained", e);
}
public void focusLost(FocusEvent e) {
displayMessage("Focus lost", e);
}
简单的回答是,您不能…主要是因为两个触发器都会在事件队列上发布一个
FocusEvent
。没有维护有关事件如何引发的信息…是否有解决方法?我真的需要知道是什么导致了这次事件。问题是,为什么?focusgound
事件是一个focusgound
事件……如果您认为需要了解两者之间的区别,您应该重新考虑您的设置-通常这不重要。如果在您的上下文中它似乎很重要,请详细说明(您可以编辑问题:-),那么现在,OP如何知道是哪种方法导致触发了focusgoven
事件?