Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 JDialog box没有获得焦点_Java_Swing_User Interface_Focus_Jdialog - Fatal编程技术网

Java JDialog box没有获得焦点

Java JDialog box没有获得焦点,java,swing,user-interface,focus,jdialog,Java,Swing,User Interface,Focus,Jdialog,我生成了一个无模式对话框,提示用户打开一个新窗口。该框可以通过两种方式打开,一种是直接从我正在编写的框架的“文件”菜单打开,另一种是通过面板插入的框架间接打开 当我直接通过“文件”菜单拨打电话时,对话框中会显示我想要的焦点。但是,当我让框架间接打开对话框时,它没有应有的焦点 打开对话框的两种方法之间似乎没有区别,在这两种情况下都会调用加载函数,直到5次方法调用之后对话框才会打开。在这两种情况下,生成对话框的框架都是在生成对话框时实现的。我尝试在显示对话框后调用requestFocus,但它似乎没

我生成了一个无模式对话框,提示用户打开一个新窗口。该框可以通过两种方式打开,一种是直接从我正在编写的框架的“文件”菜单打开,另一种是通过面板插入的框架间接打开

当我直接通过“文件”菜单拨打电话时,对话框中会显示我想要的焦点。但是,当我让框架间接打开对话框时,它没有应有的焦点

打开对话框的两种方法之间似乎没有区别,在这两种情况下都会调用加载函数,直到5次方法调用之后对话框才会打开。在这两种情况下,生成对话框的框架都是在生成对话框时实现的。我尝试在显示对话框后调用requestFocus,但它似乎没有任何作用


任何关于对话框为什么没有焦点的建议,或者我如何将其作为一个单独的窗口而不是通常有焦点的窗口来设置焦点的建议?

创建对话框时,请尝试将主GUI设置为对话框的父级

在第一种情况下,当您单击“从”菜单时,它会自动将主GUI设置为对话框的父级,但在第二种情况下不会

因此,确保在创建对话框时,始终将主GUI/窗口设置为父级


大多数情况下,这应该是有帮助的。

在某些情况下,很难将重点放在所展示的预期上,但对于出色的解决方案,最好看看camickr的

他已经尝试过了,这似乎是可行的。我想您还可以尝试使用
grabFocus()
函数?您可能想看看“框架”是什么?它是否有为对话框设置父组件的方法?如果没有,也许您应该与框架的作者联系以提供这样一种方法,而不是试图围绕这个缺点进行编码。当我间接打开对话框时,我为设置顶层窗口而进行的调用返回null。我真的应该知道,我的GUI技能没有其他Java技能看起来那么好:)