Localização ideal para um JDialog modal para evitar preso
Meu aplicativo Swing tem que mostrar um diálogo modal para o usuário. Desculpe por não postar o SSCCE.
topContainer
pode serJFrame
ouJApplet
.
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);
}
}
Eu começo o diálogo como este no evento de rede
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
NewGameDialog dialog = new NewGameDialog();
dialog.setVisible(true);
}
});
O problema é definir a localização ideal para o meu diálogo.
1) Se for definido como valor absoluto e eu mover o quadro do aplicativo para a segunda tela, a caixa de diálogo será mostrada na primeira tela, o que é estranho.
2) Se for definido um valor relativo para JFrame, pode parecer que o usuário moveu o quadro do aplicativo para fora da tela e a caixa de diálogo que está relativamente localizada não seria visível para o usuário. E porque é modal, o jogo ficaria preso.
Qual é a melhor solução considerando duas questões acima mencionadas?