[英]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.