java - Component.requestFocus 和手动对焦有什么区别

标签 java swing events awt

调用 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/

相关文章:

java - java中什么不是类的instanceof?

java - 如何将 PrintWriter 转换为字符串或写入文件?

java - 我在 java swing 应用程序中使用 Card 布局,并希望对卡片从一张到另一张的更改执行一些不错的效果

java - jtable 重新加载,但是当单击 jcheck 框时会弹出旧数据

JavaScript 在 for 循环中返回 var

java - IntelliJ 13 中带注释方法的返回类型的结构搜索

Java:查找调用者类

Java Swing GUI 控件停止,而操作在后端执行

javascript - 当我禁用 window.onwheel 事件时,它也会在 Firefox 中禁用所有 object.onwheel 事件

node.js - 从 Node 事件处理程序内调用函数