Java JFrame和JDialog之间有什么区别?
Java JFrame和JDialog之间有什么区别?,java,swing,jframe,jdialog,Java,Swing,Jframe,Jdialog,JFrame和JDialog之间有什么区别 为什么我们不能使用setDefaultCloseOperation(JDialog.EXIT\u ON\u CLOSE)对于JDialog?JFrame是一个普通窗口,带有普通按钮(可选)和装饰JDialog没有最大化和最小化按钮,通常使用JOptionPane静态方法创建,更适合使它们成为模态(它们会阻塞其他组件,直到它们关闭) 但两者都继承自Windows,所以它们共享很多功能 为什么我们不能使用setDefaultCloseOperation(J
JFrame
和JDialog
之间有什么区别
为什么我们不能使用
setDefaultCloseOperation(JDialog.EXIT\u ON\u CLOSE)代码>对于JDialog?JFrame
是一个普通窗口,带有普通按钮(可选)和装饰<另一侧的code>JDialog
没有最大化和最小化按钮,通常使用JOptionPane
静态方法创建,更适合使它们成为模态(它们会阻塞其他组件,直到它们关闭)
但两者都继承自Windows,所以它们共享很多功能
为什么我们不能使用setDefaultCloseOperation(JDialog.HIDE\u ON\u CLOSE)代码>用于JDialog
当然可以
张贴说明使用此值时遇到的问题的帖子
但是,您不能对JDialog
使用EXIT\u ON\u CLOSE
,因为该值不受支持,这是有意义的,因为JDialog
是应用程序的“子”或“助手”窗口,由JFrame
表示。关闭对话框不应关闭应用程序。您也可以使用setModal(布尔t)代码>
这仅适用于JDialog
。用户必须在JDialog
而不是其他窗口上操作。如果他们想操作所有者窗口,他们必须关闭此JDialog
有些JDialog
构造函数具有owner
参数,该参数可以是框架
、对话框
或窗口
。非空值还使JDialog
保持在其所有者之上。这是Fortran描述的模态行为的补充。您对JavaDocs的阅读有何建议?您对屏幕上的两个组件的检查显示了什么?相同的问题:您的权利。我将其编辑为setDefaultCloseOperation(JDialog.Exit_on_CLOSE);这不是问题的答案,是吗?一旦你有了足够的rep,你就可以评论:-)问题是关于差异,所以我发现非常有趣的是,JDialog有能力保持在其父代之上,而不必是模态的。我会使用更新的构造来代替布尔模态API——在代码中有更细粒度的控制和更清晰的意图。