Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';这是Component.requestFocus和manually focus之间的区别_Java_Swing_Events_Awt - Fatal编程技术网

Java 什么';这是Component.requestFocus和manually focus之间的区别

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

调用Component.requestFocus()和手动聚焦组件(例如,使用键盘或鼠标聚焦组件)都会触发FocusEvent.focus\u

我正在听AWT的节目

我的问题是:


我怎么知道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
事件?