Ubicación óptima para un JDialog modal para evitar atascarse

Mi aplicación Swing tiene que mostrar un diálogo modal al usuario. Lo siento por no publicar SSCCE.

topContainer puede serJFrame oJApplet.

private class NewGameDialog extends JDialog {
     public NewGameDialog () {
         super(SwingUtilities.windowForComponent(topContainer), "NEW GAME", ModalityType.APPLICATION_MODAL);

         //add components here

         getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));

         //TODO:
         setSize(new Dimension(250, 200));
         setLocation(650, 300);
     }
}

Comienzo el diálogo así en el evento de red.

SwingUtilities.invokeLater(new Runnable() {
     @Override
     public void run() {
         NewGameDialog dialog = new NewGameDialog();
         dialog.setVisible(true);
     }
});

El problema es establecer la ubicación óptima para mi diálogo.

1) Si se establece como valor absoluto, y muevo el marco de la aplicación a la segunda pantalla, se muestra el cuadro de diálogo en la primera pantalla, lo cual es extraño.

2) Si se establece un valor relativo en JFrame, podría parecer que el usuario movió el marco de la aplicación fuera de la pantalla y que el cuadro de diálogo de ubicación relativa no sería visible para el usuario. Y porque es modal, el juego se atascaría.

¿Cuál es la mejor solución considerando los dos problemas mencionados anteriormente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta