Java swing“;“儿童”;窗户

Java swing“;“儿童”;窗户,java,swing,desktop-application,Java,Swing,Desktop Application,很抱歉问了一个很简单的问题,但我在网上找不到任何东西,可能是因为我不知道该找什么合适的术语 当你有一个桌面应用程序时,有许多所谓的子窗口:一个用于选项,一个用于“关于”等等。如何在JavaSwing中实现它们(使用NetBeans工具-可选) 到目前为止,我刚刚创建了另一个JFrame,并在相关事件中以与主功能启动相同的方式打开它,嗯,主JFrame。但这种方法有点问题:当我通过右上角的x关闭子窗口时,整个程序终止,就像我关闭主窗口一样。这可能是因为NetBeans为x自动生成代码,我可以在某处

很抱歉问了一个很简单的问题,但我在网上找不到任何东西,可能是因为我不知道该找什么合适的术语

当你有一个桌面应用程序时,有许多所谓的子窗口:一个用于选项,一个用于“关于”等等。如何在JavaSwing中实现它们(使用NetBeans工具-可选)


到目前为止,我刚刚创建了另一个JFrame,并在相关事件中以与主功能启动相同的方式打开它,嗯,主JFrame。但这种方法有点问题:当我通过右上角的x关闭子窗口时,整个程序终止,就像我关闭主窗口一样。这可能是因为NetBeans为x自动生成代码,我可以在某处找到并更改它。。。但我仍然觉得,必须有一种更简单、正确的方法来添加子对象JFrames(或JPanels,或任何适用于儿童窗口的东西);)

您的意思是一个对话框窗口(请参阅),您可能希望它是模式窗口,以阻止用户输入程序中的所有其他窗口(请参阅)

。。。但这有点不对劲 方法:通过关闭子窗口时 右上角的x,整个 程序终止,就好像我要关闭一样 主窗口

好吧,我想说你走的路是对的。只需确保对子帧执行以下操作:

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
关闭子窗口不会关闭整个应用程序


嗯!;-)

进入框架设计模式->选择框架->属性中的第一个选项。选择“关闭时处置”


如果您没有看到道具:
Ctrl+Shift+7
窗口(在“框架”菜单中)->Properties

如果您创建框架,则它们不被视为子窗口。不能像设置JDialog那样为它们设置所有者。如果确实要创建另一个JFrame,则必须设置close操作

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
而不是

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
退出打开关闭操作将调用 系统出口(0); 这将终止JVM。只要记住,如果主JFrame设置为 在关闭时处理
然后,您必须确保所有其他帧都已正确处理,否则在处理完之前它不会退出。

不完全正确。我的意思是类似于选项窗口的东西。即Firefox首选项窗口。除非它也被称为对话窗口。谢谢大家;)可惜我不能正式接受不止一个答案,所有答案都很有用:)