aJFrame
和 a 和有什么不一样JDialog
?
为什么我们不能setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
用于 JDialog?
JFrame
是一个带有普通按钮(可选)和装饰的普通窗口。JDialog
另一方面,没有最大化和最小化按钮,通常使用JOptionPane
静态方法创建,并且更适合使它们成为模态(它们阻止其他组件直到它们关闭)。
但两者都继承自 Window,因此它们共享很多功能。
为什么我们不能使用
setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
forJDialog
?
你当然可以。
发布您的SSCCE,证明您在使用此值时遇到的问题。
但是,您不能使用EXIT_ON_CLOSE
for aJDialog
因为该值不受支持,这是有道理的,因为 aJDialog
是您的应用程序的“子”或“帮助”窗口,由 a 表示JFrame
。关闭对话框不应关闭应用程序。
有些JDialog
构造函数的owner
参数可以是 a Frame
、 aDialog
或 a Window
。一个非空值也使JDialog
他的所有者停留在上面。这是 Fortran 描述的模态行为的补充。
您也可以使用setModal(boolean t);
这仅适用于JDialog
. 用户必须在JDialog
其他窗口上进行操作。如果他们想操作所有者窗口,他们必须关闭它JDialog
。