-4

我有一个 JFrame,它是父级的。使用父 JFrame 中的按钮之一,打开作为子窗口的新 JFrame。

如何在不关闭子窗口的情况下限制用户访问父窗口?

我不能使用 JDialog 因为对 JFrame 有一些依赖。

4

1 回答 1

2

您正在寻找的是Modality in Dialogs

引用:

  • 模态对话框 - 一个对话框,它阻止输入到应用程序中的一些其他顶级窗口,但以对话框作为其所有者创建的窗口除外。模态对话框捕获窗口焦点直到它关闭,通常是响应按钮按下。

  • 无模式对话框 - 一个对话框,使您能够在显示此对话框时对其他窗口进行操作。

另请查看JDialog#setModalityType()Dialog.ModalityType。这些将允许您设置对话框的模态类型。

可用的类型有:

  • APPLICATION_MODAL : APPLICATION_MODAL 对话框阻止来自同一个 Java 应用程序的所有顶级窗口,除了来自其自己的子层次结构的那些窗口。
  • DOCUMENT_MODAL : DOCUMENT_MODAL 对话框阻止来自同一文档的所有顶级窗口的输入,除了来自其自己的子层次结构的那些。
  • MODELESS:MODELESS 对话框不会阻止任何顶级窗口。
  • TOOLKIT_MODAL : TOOLKIT_MODAL 对话框阻止所有从同一工具包运行的顶级窗口,除了那些来自其自己的子层次结构的窗口。
于 2013-05-23T05:39:06.683 回答