繁体   English   中英

在模式 JDialog 可见时访问无模式 JFrame?

[英]Access a modeless JFrame while a modal JDialog is visible?

是否可以在模式 JDialog 可见时访问无模式 JFrame?

我有一个 JFrame 显示我的日志行。 当我显示模态 JDialog 时,例如登录时,用户无法单击 JFrame。

JFrame 不是 JDialog 的父级/所有者。

JFrame 是第一个被创建的 JFrame。

请注意,当我在 JDialog 中执行某些导致日志行添加到日志的操作时,我可以看到它出现在 JFrame 中。

这是它应该如何工作还是可以让用户在模态 JDialog 可见时单击 JFrame?

如果对话框是应用程序模式的,例如ModalityType.APPLICATION_MODAL ,那么当对话框可见时,它将阻止用户与应用程序中所有其他顶级窗口的交互。 这不会阻止应用程序本身更改其他顶级窗口状态,包括它们显示的任何文本。

似乎使用 ModalityType.DOCUMENT_MODAL 是答案。

提供 JDialog ModalityType.DOCUMENT_MODAL (setModalityType) 并确保 setModal 为 false。 JDialog 还应该有所有者/父窗口。

应该始终可访问的 JFrame 应该与 JDialog 无关,因此不要将其用作 JDialog 的所有者/父级。

现在 JDialog 阻止了所有者/父窗口,但在显示模式 JDialog 时仍然可以访问 JFrame。

感谢 @Hovercraft Full Of Eels 将我指向 ModalityType。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM