Почему JDialog «прыгает» на setLocationRelativeTo ()? - PullRequest
1 голос
/ 22 февраля 2009

Есть класс, который расширяет JDialog. Он полностью инициализирован на EDT (на всякий случай). Теперь,

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

приводит к тому, что диалоговое окно появляется в крайнем левом углу, а затем прыгает в нужное положение Я что-то делаю неправильно?

1 Ответ

1 голос
/ 24 февраля 2009

Не могли бы вы предоставить рабочий пример и дополнительную информацию? Например, на какой операционной системе вы тестируете? У свинга есть некоторые различия между некоторыми, например JDialogs без родителя получает запись на панели GNOME, но не на панели задач Windows и тому подобное.

Во-вторых, я бы предположил, что ваш JDialog виден до того, как вы вызовете setLocationRelativeTo, возможно, через часть, которую вы прокомментировали как «скучную». Я бы посоветовал вам быстро набрать

System.out.println(isVisible());

в ваш код, прямо перед setLocationRelativeTo, на всякий случай ...

...