java - 如何阻止JDialog每次都请求焦点?

标签 java swing jdialog

我不久前编写了一个数据绘图仪应用程序,它具有自动重新加载功能。加载和重新加载操作都会导致弹出带有取消按钮的 JDialog。在自动重新加载模式下,这种情况每隔几秒就会发生一次,JDialog 窗口每次都会请求焦点。

我尝试在 JDialog 实例上调用 setFocusableWindowState(false),但这没有任何区别。难道是因为它是一个 JDialog 而不是 Window 的其他子类?

更新:setFocusableWindowState(false) 确实有效,我只是愚蠢地运行了错误的 jar 文件。很长的故事。不管怎样,我不会删除这个问题,因为当我在发布它之前做了一些研究时,我看到其他一些人也遇到了类似问题。这就是解决方案:)

最佳答案

您必须将这两个语句放在扩展 JDialog 的类的构造函数中

setFocusableWindowState(false);
setFocusable(false);

因此,每次 JDialog 出现时,父容器仍会将焦点放在它所拥有的内容上。

关于java - 如何阻止JDialog每次都请求焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962216/

相关文章:

java - GradientPaint 工作异常

java - 使用进度条

java - 使用多个显示器时设置对话框位置

java - 类似的输入对话框创建模式/Swing

java - 返回显式声明的父类(super class)的子类的通用方法

java - Struts "org.apache.struts.action.RequestProcessor - Unhandled Exception thrown"- 如何获取完整的堆栈跟踪?

java.rmi.NotBoundException

java - JDialog实现Runnable不显示内容

java - android中Asynctask内的json解析错误

java - 通过反射更改私有(private)最终字段