java - 为什么 JDialog 'jump' 在 setLocationRelativeTo() 上?

标签 java swing jdialog

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

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

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

最佳答案

您能否提供一个工作示例和更多信息?例如,您在什么操作系统上进行测试? Swing 之间存在一些差异,例如没有父级的 JDialogs 在 gnome 面板中获得条目,但在 Windows 任务栏中不获得条目以及类似的东西。

其次,我猜想,在调用 setLocationRelativeTo 之前,您的 JDialog 是可见的,也许是通过您注释为“无聊”的部分中的某种程度。我建议你快速打洞

System.out.println(isVisible());

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

关于java - 为什么 JDialog 'jump' 在 setLocationRelativeTo() 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574746/

相关文章:

java - Java 中的进度条

java - GUI - 在不同窗口之间传输数据(JFrame、JDialog、JOptionPane)

java - JFrame 表现得像 JDialog?

java - 在 Java 中创建一个用零归档的 int 数组

java - 如何在android中获取准确的UTC时间戳

java - 如何使用 Maven 原型(prototype) :generate with local archetype?

java - JPanel 可能重叠?

java - 为什么Java无法运行类-引导层初始化期间发生错误-找不到模块模块

java - 使用ActionListener更新其他类中的变量

java - JDialog拒绝关闭