Java 如何在打开另一个JFrame时禁用JFrame(没有JDialog?)
干杯,小伙子们 我现在站在一个小问题面前,但它真的让我发疯,我无法解决它 我的第一个错误是将我的主JFrame也用作主类。 你会看到为什么这是一个问题(据我判断)稍后 现在,我正在从我的主类main JFrame打开一个新的JFrame,只要新的JFrame打开,我就想禁用它 我已经读了很多关于使用JDialog来实现这一点的文章,但是我还没有找到一个解决方案,而不必重新设计我的整个子JFrame 有没有一种简单的方法,只要打开mainJFrame,就可以禁用mainJFrame? 比如: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 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(默认的模态类型)“我必须说我发现第一个“答案”真的很令人反感,”这是一个评论,(基于接近票数的投票)而不是一个答案。很高兴你把问题解决了。“关闭框架”哪个框架?不要介意。处理它们中的任何一个都可能是一个问题的答案,而不是这个问题——在这个问题中需要一个模式窗口或对话框。