java - 如何在应用程序退出之前使文本字段失去焦点?

标签 java swing jframe focus windowlistener

我有一个带有包含文本字段的 JFrame 的应用程序。当字段中的文本被修改并且该字段获取 focusLost 事件时,它会立即将其内容写入外部数据库。

但是,如果用户在某个字段仍处于焦点状态时退出应用程序,则不会发送 focusLost 消息,并且不会保存修改的数据。

如何强制失去对某个字段的焦点,也许是在我的 WindowListener 中的 windowClosing 方法中?我尝试在该方法中使用 requestFocusInWindow(),但没有帮助。

最佳答案

为什么不直接从窗口监听器的 windowClosing 方法中调用将内容写入外部数据库的相同方法?

@Override
public void windowClosing(WindowEvent e) {
    // call write to DB method
    System.exit(0);
} 

关于java - 如何在应用程序退出之前使文本字段失去焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41290177/

相关文章:

java - 使用通用和原始类型执行操作不起作用

java - 维塔米奥服务

java - 从特定线程请求堆栈跟踪是否需要所有线程都处于安全点?

java - JTable 中的 JPanel 获得鼠标单击的焦点,但鼠标悬停时不获得焦点

java - 不可序列化异常 - 组布局

java - java中的自定义表格单元格编辑器,列数据类型为Float

java - 在 JFrame 上对齐 JButton 和 JLabel

java - JFrame Repaint() 单个组件

java - 带有 SpannableStringBuilder 和 ImageSpan 的可包装 TextView 隐藏每一行的最后一个图像

java - JFrame 之上的额外层