Java 如何在打开另一个JFrame时禁用JFrame(没有JDialog?)

Java 如何在打开另一个JFrame时禁用JFrame(没有JDialog?),java,swing,user-interface,jframe,Java,Swing,User Interface,Jframe,干杯,小伙子们 我现在站在一个小问题面前,但它真的让我发疯,我无法解决它 我的第一个错误是将我的主JFrame也用作主类。 你会看到为什么这是一个问题(据我判断)稍后 现在,我正在从我的主类main JFrame打开一个新的JFrame,只要新的JFrame打开,我就想禁用它 我已经读了很多关于使用JDialog来实现这一点的文章,但是我还没有找到一个解决方案,而不必重新设计我的整个子JFrame 有没有一种简单的方法,只要打开mainJFrame,就可以禁用mainJFrame? 比如: JF

干杯,小伙子们

我现在站在一个小问题面前,但它真的让我发疯,我无法解决它

我的第一个错误是将我的主JFrame也用作主类。 你会看到为什么这是一个问题(据我判断)稍后

现在,我正在从我的主类main JFrame打开一个新的JFrame,只要新的JFrame打开,我就想禁用它

我已经读了很多关于使用JDialog来实现这一点的文章,但是我还没有找到一个解决方案,而不必重新设计我的整个子JFrame

有没有一种简单的方法,只要打开mainJFrame,就可以禁用mainJFrame? 比如:

JFrame subframe = new GUI_subJFrame(<params>);
this.disable();
subframe.onClose(this.enable());
JFrame subframe=new GUI_subframe();
这个。disable();
subframe.onClose(this.enable());
我知道这很糟糕,而且不存在源代码,但我想让我的想法清晰、准确。

使用
frame.dispose()
要关闭框架

我刚刚将“subframe”从
JFrame
更改为
JDialog
,并在构造函数中添加了以下行:

this.setModalityType(DEFAULT_MODALITY_TYPE);
它工作得很好,不像乍看起来那么复杂


感谢大家的帮助。

我投票结束这个问题,因为OP拒绝了显而易见的、最简单的解决方案。“我已经读了很多关于使用
JDialog
来完成这项工作的书,但是我还没有找到一个解决方案,而不需要重新设计我的整个子
JFrame
“好的,开始吧。”。问题不会自行解决,在
JFrame
中获得该功能比将代码从一个框架移植到一个对话框要困难得多。您是否犯了使用IDE内置GUI编辑器的错误(不了解如何使用布局、组件和模型)?(1-
,但我还没有找到解决方案,而不必重新设计整个子JFrame。
-没有理由重新设计子JFrame。您所要做的就是使用JDialog而不是JFrame。所有其他方法都是相同的。每个组件都有一个内容窗格,您可以将组件添加到内容窗格中。我必须说,我发现第一个“答案”非常令人反感,但看起来我只是没有准确描述我的情况。我只是想说,我并没有真正理解JDialog的部分,它在我看来有点复杂。现在我必须说,事实并非如此。可以说,我的边缘观点很糟糕。我现在将JFrame更改为JDialog,并添加了一行
this.setModalityType(默认的模态类型)