为什么Dialog.ModalityType.APPLICATION_MODAL必须使用parent = null?

时间:2017-09-28 13:04:26

标签: java linux modal-dialog jdialog

我遇到了与JDialog相关的Linux特定问题,并且缺少X(关闭)图标并且它是模态的。

每个JDialog not showing minimize/close button的解决方法是使用以下内容:

super(null, title, Dialog.ModalityType.APPLICATION_MODAL);

而不是使用

super(parent, title, true);

这实际上有效。 下一步是使用父引用来尝试它:

super(parent, title, Dialog.ModalityType.APPLICATION_MODAL);

这不再起作用,因为JDialog不再是模态的。 试图利用setModal(true);以任何方式打电话都不会奏效。

查看实际的JDialog构造函数代码,它遍历到Dialog构造函数代码中,后者又调用setModalityType(...); Dialog构造函数使用Parent变量执行IF条件,该变量仅验证参数并在出现问题时返回异常。

回顾一下Dialog构造函数调用的setModalityType(..)调用,如果存在父代,我没有看到任何代码执行方式不同。

这引出了以下两个问题。 1 - 什么是更改Dialog.ModalityType.APPLICATION_MODAL行为是否传入父项? 2 - 没有传递父母的后果是什么?通过将null作为父级传递,初步测试未显示任何行为差异。

如果重要,JDK版本:1.8

0 个答案:

没有答案