29

aJFrame和 a 和有什么不一样JDialog

为什么我们不能setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);用于 JDialog?

4

4 回答 4

29

JFrame是一个带有普通按钮(可选)和装饰的普通窗口。JDialog另一方面,没有最大化和最小化按钮,通常使用JOptionPane静态方法创建,并且更适合使它们成为模态(它们阻止其他组件直到它们关闭)。

但两者都继承自 Window,因此它们共享很多功能。

于 2011-04-05T13:45:49.687 回答
5

为什么我们不能使用setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);for JDialog

你当然可以。

发布您的SSCCE,证明您在使用此值时遇到的问题。

但是,您不能使用EXIT_ON_CLOSEfor aJDialog因为该值不受支持,这是有道理的,因为 aJDialog是您的应用程序的“子”或“帮助”窗口,由 a 表示JFrame。关闭对话框不应关闭应用程序。

于 2011-04-05T15:28:23.710 回答
1

有些JDialog构造函数的owner参数可以是 a Frame、 aDialog或 a Window。一个非空值也使JDialog他的所有者停留在上面。这是 Fortran 描述的模态行为的补充。

于 2013-08-12T08:17:30.450 回答
0

您也可以使用setModal(boolean t); 这仅适用于JDialog. 用户必须在JDialog其他窗口上进行操作。如果他们想操作所有者窗口,他们必须关闭它JDialog

于 2012-10-22T12:09:44.457 回答