4

我已经使用 JDialog 创建了自己的 JOptionPane,但我似乎无法复制典型 JOptionPane 的行为,该行为禁止用户单击 JOptionPane 窗口以外的任何位置。

我需要使用 JDialog 复制 JOptionPane 的哪些属性才能模仿这种行为?(我知道 JOptionPane 只是专门的 JDialogs,您可以查看 JOptionPane 类源代码)。

4

2 回答 2

5

设置JDialog模态的 Swing API是以Dialog.ModalityType作为参数的构造函数之一。

创建后设置模态:java.awt.setModalityType()

要获取模态,请使用java.awt.Dialog.getModalityType()

老式的方法是使用布尔值(其他构造函数)。

有时我们想用java.awt.setModalExclusionType()从模态中排除一些 Windows (很少使用)

于 2013-06-04T19:00:05.323 回答
4

它只不过是一个模态的 JDialog,它是赋予它这个属性的模态。据我所知,如果不创建和使用模态 JDialog,您将无法直接复制它。您必须确保 JDialog 设置为引用正确的父窗口(通常是 JFrame),并且其 ModalityType 设置正确。

于 2013-06-04T18:56:54.483 回答