Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 如何在JFrames上覆盖对话框?_Java_Swing_Jframe - Fatal编程技术网

Java 如何在JFrames上覆盖对话框?

Java 如何在JFrames上覆盖对话框?,java,swing,jframe,Java,Swing,Jframe,我有一个java程序,可以执行以下操作: 它从对话框开始,然后在用户单击OK/Cancel或X或其他什么之后,它进入JFrames或dialog Box。JFrames也有按钮,如Next/Ok等。随着程序的进行,一个JFrames(我们称之为“状态栏”)始终在屏幕上可见,并且永远不会消失(这就是我想要的)。(我不想处理它,因为它们包含用户在未来对话框和其他JFrame上进行选择时需要查看的重要信息) 现在我的问题出现了..当future对话框出现时,我无法点击JFrame的“状态栏”。由于某些

我有一个java程序,可以执行以下操作:

它从对话框开始,然后在用户单击OK/Cancel或X或其他什么之后,它进入JFrames或dialog Box。JFrames也有按钮,如Next/Ok等。随着程序的进行,一个JFrames(我们称之为“状态栏”)始终在屏幕上可见,并且永远不会消失(这就是我想要的)。(我不想处理它,因为它们包含用户在未来对话框和其他JFrame上进行选择时需要查看的重要信息)

现在我的问题出现了..当future对话框出现时,我无法点击JFrame的“状态栏”。由于某些原因,我必须先在对话框中执行一些操作。就像我必须单击对话框上的“确定/取消”一样,如果我得到另一个对话框(取决于程序的位置),我也会遇到同样的问题。在我得到另一个JFrame之前,我可以单击“状态栏”JFrame,单击它上的按钮以及该JFrame上显示的所有好东西

一种解决方案是将我剩余的所有对话框转换为JFrames,但这需要很多时间,因为我有各种各样的对话框。然后把所有的东西连接起来会很费时

因此,我可以告诉Java一个函数或代码……让用户在屏幕上显示对话框时能够与JFrame“状态栏”交互


我希望我说的有道理。如果有什么不清楚,请询问。我感谢你的帮助

在所有对话上调用
setModal(false)
方法,以便在JDialog打开时可以转到JFrame。

如果使用Java 6,则可以使用新的模态设置

根据您的GUI设计,您可能希望将对话框文档设置为模态,而不是非模态(相当于setModal(false))。请注意,只有当对话框显示在不同于Progress JFrame的根容器中时,这才起作用

另一个选项是在您希望始终可见的JFrame上设置模式排除。这样,您的对话框仍然可以阻止其他帧,您无需每次添加新对话框时都记得
setModal(false)

progressFrame.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);

或者在构建对话框时,设置modal=false。我使用了setModalExclusionType(dialog.ModalExclusionType.APPLICATION_EXCLUDE);对于框架。它正在工作。谢谢。