使用this JDialog
构造函数,在我指定拥有JFrame
实例的地方,我发现JDialog
不是以其所有者组件为中心。相反,它出现在左上角。为了使其工作,我必须在setLocationRelativeTo
方法中指定所有者组件。
为什么会这样?
工作环境:
请注意,对于JFrame
实例,我使用setLocationRelativeTo(null)
。
答案 0 :(得分:3)
JDialog
非常普遍。如果您想快速弹出常规对话框,请查看JOptionPane
。它有方法可以轻松创建居中的JDialog
组件或立即弹出阻止对话框窗口。
e.g。
JDialog dialog = new JOptionPane("message", JOptionPane.INFORMATION_MESSAGE)
.createDialog(jFrameOwner, "window title");
虽然你可能真的想看看JOptionPane.showXxxDialog
静态方法。非常有用和方便。
您可能希望看一下dialog tutorial。可以使用JOptionPane
类生成java web start应用程序生成的所有对话框。
答案 1 :(得分:2)
听起来像是一个设计决定。有时您希望为对话框提供对其父级的引用,而不是将位置置于其中心。