使用这个JDialog
构造函数,在这里我指定了拥有的JFrame
实例,我发现JDialog
不是集中在它的所有者组件上。相反,它出现在左上角。为了使其工作,我必须在setLocationRelativeTo
方法中指定所有者组件。
为什么会这样?
工作环境:
- 双显示器
- Windows XP OS JDK 1.6.0_29
JFrame
实例,我使用setLocationRelativeTo(null)
。
我认为JDialog
是非常普遍的。如果你想要快速弹出一个常规对话框,那么看看JOptionPane
。它有方法可以轻松地创建一个中心JDialog
组件或立即弹出一个阻塞对话框窗口。
。
JDialog dialog = new JOptionPane("message", JOptionPane.INFORMATION_MESSAGE)
.createDialog(jFrameOwner, "window title");
虽然你可能真的想看看JOptionPane.showXxxDialog
静态方法。非常有用和方便。
你可能希望看一下对话教程。java web start应用程序生成的所有对话框都可以使用JOptionPane
类生成。
听起来像是一个设计决策。有时你想给对话框一个引用到它的父元素,而不把位置居中。