Java 在模态JDialog前面弹出一个JFrame

Java 在模态JDialog前面弹出一个JFrame,java,jframe,jdialog,modality,Java,Jframe,Jdialog,Modality,在我们正在设计的应用程序中,我们有一个从JFrame继承的类。这个类启动一个JDialog派生类,它是模态的,以便从最终用户捕获一些输入。由于新的需求,这个派生类现在需要启动一个不同的JFrame 我们面临的问题是,如果我们将JDialog设置为非模态对话框,那么当我们使用setVisible(false)隐藏对话框时,JDialog中的数据不会被保存 另一方面,如果我们保持它的模态,新表单就不会启动,而且总是隐藏的 你知道模态为什么会影响对话对象吗 我终于能够通过在弹出的新框架中设置应用程序排

在我们正在设计的应用程序中,我们有一个从JFrame继承的类。这个类启动一个JDialog派生类,它是模态的,以便从最终用户捕获一些输入。由于新的需求,这个派生类现在需要启动一个不同的JFrame

我们面临的问题是,如果我们将JDialog设置为非模态对话框,那么当我们使用setVisible(false)隐藏对话框时,JDialog中的数据不会被保存

另一方面,如果我们保持它的模态,新表单就不会启动,而且总是隐藏的

你知道模态为什么会影响对话对象吗


我终于能够通过在弹出的新框架中设置应用程序排除模态类型来解决这个问题!谢谢大家的帮助

我想说,情态不是问题,或者只是问题的一部分。 问题是如何保存数据。 隐藏对话框时不会自动发生这种情况,是吗? 您很可能会听到一些事件或按钮操作,以从对话框中提取和保存数据。
因此,您应该检查提取和保存数据的机制,并查看它所依赖的是什么,当模态关闭时不会触发。

如果我们将JDialog设置为非模态对话框,那么当我们使用setVisible(false)隐藏对话框时,JDialog中的数据不会被保存我不认为对话框的形式会影响你从中获取数据和处理数据的方式。你好,哈里,我也不这么认为,这就是为什么我从来没有研究过这个选项,但很明显,当我隐藏对话框时,对象也被破坏了,因此我丢失了数据。我不能用其他方式解释它!因此,我的难题是,这两种情况下的处理是相同的,但在一种情况下它工作,而在另一种情况下它就是不工作!新框架应在关闭对话框后或使用此对话框时出现?新框架应在使用对话框时出现,它是通过在新框架中设置应用程序排除类型来修复的。不幸的是,应用程序是由其他人设计的,我们对更改元素没有太多控制权!不过非常感谢你的帮助!!即使您没有可能更改代码,您也可以查看它,找出它为什么不工作,以及如何在不更改代码的情况下使其工作。如果不能够真正了解代码,就很难变得更具体。如果需要进一步的帮助,您可以提供一个showcase项目,其中包含显示相同行为的示例代码。如果我的答案已经帮助您解决了问题,那么您最好接受它作为正确答案。:-)