Не могли бы вы предоставить рабочий пример и дополнительную информацию? Например, на какой операционной системе вы тестируете? У свинга есть некоторые различия между некоторыми, например JDialogs без родителя получает запись на панели GNOME, но не на панели задач Windows и тому подобное.
Во-вторых, я бы предположил, что ваш JDialog виден до того, как вы вызовете setLocationRelativeTo, возможно, через часть, которую вы прокомментировали как «скучную». Я бы посоветовал вам быстро набрать
System.out.println(isVisible());
в ваш код, прямо перед setLocationRelativeTo, на всякий случай ...