我遇到了与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