为什么JDialog'跳'到setLocationRelativeTo()?

时间:2009-02-22 11:10:14

标签: java swing jdialog

有一个扩展JDialog的类。它完全在EDT上初始化(以防万一)。 现在,

public PropsDialog (JFrame parentFrame)
{
    super(parentFrame);
    // boring
    pack();
    setLocationRelativeTo(getParent());
    setVisible(true);
}

导致对话框出现在最左边的角落,然后跳到它的预期位置。 我做错了吗?

1 个答案:

答案 0 :(得分:1)

您能提供一个工作示例和更多信息吗?例如,您正在测试哪种操作系统? Swing在某些方面有一些差异,例如没有父级的JDialogs在gnome面板中获取条目但不在Windows任务栏中获取条目等。

其次,我猜,在你调用setLocationRelativeTo之前你的JDialog是可见的,可能在你注释为“无聊”的部分内部。我建议你快速打一下

System.out.println(isVisible());

进入你的代码,就在setLocationRelativeTo之前,以防万一...