【发布时间】:2011-07-29 23:57:36
【问题描述】:
JFrame 和 JDialog 有什么区别?
为什么我们不能将setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); 用于 JDialog?
【问题讨论】:
-
您对 JavaDocs 的阅读有什么建议?您对屏幕上的两个组件的检查发现了什么?
JFrame 和 JDialog 有什么区别?
为什么我们不能将setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); 用于 JDialog?
【问题讨论】:
JFrame 是一个带有普通按钮(可选)和装饰的普通窗口。另一边的JDialog 没有最大化和最小化按钮,通常使用JOptionPane 静态方法创建,并且更适合使它们成为模态(它们阻止其他组件直到它们关闭)。
但两者都继承自 Window,因此它们共享很多功能。
【讨论】:
为什么我们不能将
setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);用于JDialog?
当然可以。
发布您的SSCCE,证明您在使用此值时遇到的问题。
但是,您不能将EXIT_ON_CLOSE 用于JDialog,因为该值不受支持,这是有道理的,因为JDialog 是您的应用程序的“子”或“帮助”窗口,由@ 表示987654327@。关闭对话框不应关闭应用程序。
【讨论】:
您也可以使用setModal(boolean t);
这仅适用于JDialog。用户必须在JDialog 上操作,而不是其他窗口。如果他们想操作所有者窗口,他们必须关闭这个JDialog。
【讨论】:
有些JDialog 构造函数带有owner 参数,可以是Frame、Dialog 或Window。非空值也使JDialog 保持在其所有者之上。这是对 Fortran 描述的模态行为的补充。
【讨论】: