gpt4 book ai didi

Java 使用 JDialog block 主程序

转载 作者:行者123 更新时间:2023-11-30 03:09:46 24 4
gpt4 key购买 nike

我在 java 中有一个主类,它调用 JFrame Two。

但在调用 JFrame Two 之前,我的主要检查一个条件,如果为真,则调用 JFrame One。

所以,我的 main 不扩展 JFrame。

我希望我的 JFrame One 停止我的 main,直到它关闭,然后我的 main 可以调用我的 JFrame Two。

我尝试将 JFrame One 作为 JDialog 模式,但我的 main 仍在运行(可能是因为它不是 JFrame ?)

这是我的代码的简化部分:

File file = new File(PTA);
if (!file.exists()) {
FrameOne fo = new FrameOne(); //FrameOne Extends JFrame
}
FrameTwo ft = new FrameTwo();

正如您所看到的,我的 main 将始终调用 FrameTwo。

但我希望在 FrameOne 关闭之前,主类停止运行,因此在 FrameOne 关闭之前它不会调用 FrameTwo。

我真的不知道 JDialog 是如何工作的,我尝试使用“setModal(true)”在 JDialog 中转换我的 JFrameOne,但我的主类仍在运行。

请问你能帮我吗?我的项目被这个问题阻止了...

感谢您的关注和帮助。

问候,

马克西姆·奥泽内。

最佳答案

i tried to convert my JFrameOne in a JDialog with "setModal(true)" but my main class still running too.

这样不行,你和你都不能用这种方式制作 JFrame 模态(JFrame 甚至没有这个方法)。相反,您必须使用 JDialog 而不是 JFrame,并创建对话框以使其成为模态对话框。我自己避免创建扩展 JFrame 等的类,而是将我的代码用于创建 JPanel,然后可以将其放入 JFrame 或 JDialogs 或 JTabbedPanes 中,或者在需要的地方通过 CardLayouts 进行交换。这将大大提高 GUI 编码的灵 active 。

因此,我会在这些方面做一些事情:

MyPanel myPanel = new MyPanel();

// assuming that the parent window JFrame is referenced by "myFrame"
JDialog myDialog = new JDialog(myJFrame, "My Dialog", ModalityType.APPLICATION_MODAL);
myDialog.add(myPanel);
myDialog.pack();
myDialog.setVisible(true);

如果这没有帮助,请创建并发布您的 Minimal, Complete, and Verifiable example程序,让我们帮忙修改一下。

关于Java 使用 JDialog block 主程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33855315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com