Optimale Position für einen modalen JDialog, um ein Festfahren zu vermeiden

Meine Swing-Anwendung muss dem Benutzer einen modalen Dialog anzeigen. Entschuldigen Sie, dass Sie SSCCE nicht veröffentlichen.

topContainer könnte seinJFrame oderJApplet.

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);
     }
}

Ich starte den Dialog so auf Netzwerkereignis

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

Das Problem ist, den optimalen Ort für meinen Dialog festzulegen.

1) Wenn es als absoluter Wert festgelegt ist und ich den App-Frame auf den zweiten Bildschirm verschiebe, wird auf dem ersten Bildschirm ein seltsamer Dialog angezeigt.

2) Wenn ein relativer Wert für JFrame festgelegt wird, scheint es, dass der Benutzer den App-Frame aus dem Bildschirm verschoben hat und das Dialogfeld, das sich relativ befindet, für den Benutzer nicht sichtbar ist. Und weil es modal ist, würde das Spiel hängen bleiben.

Was ist die beste Lösung in Anbetracht der beiden oben genannten Probleme?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage