To avoid random JDialog positioning problems, use setLocationRelativeTo(parentComponent) to place a JDialog where your users would expect it.
JDialog
setLocationRelativeTo(parentComponent)
See also Pack Frames and Always Initialize Frame Size.