2010-09-07 13 views
1

J'ai une classe de dialogue avec un constructeur comme leComment définir la position d'une boîte de dialogue afin qu'elle soit centrée dans son image parent?

public SampleDialog(JComponent parent, String title){ 
    super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false); 
    setLocationRelativeTo(parent); 
    init(); 
    } 

suivant, cette positions Cependant la boîte de dialogue pour que ce soit coin supérieur droit est au centre de son parent. Je voudrais que le centre de la boîte de dialogue se trouve au-dessus du centre du composant parent. Comment puis-je faire cela? Est-ce que je fais quelque chose de mal?

Répondre

1

Je l'ai compris. J'ai dû déplacer setLocationRelativeTo (parent) à la fin du constructeur. Il doit être appelé après l'appel de pack(), que j'appelais dans ma méthode init.

public SampleDialog(JComponent parent, String title){ 
    super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false); 
    init(); 
    setLocationRelativeTo(parent); 
    } 

init(){ 
    // initialization code goes here 
    pack(); 
} 
0

Je l'ai fait quelque chose de semblable à cela, mais je

Dimension dim = Toolkit.getDefaultToolkit() 

puis utilisé .getScreenSize, mais je suis sûr que vous pouvez l'utiliser pour obtenir la largeur et la hauteur de votre application parent avec quelque chose comme ceci:

myApplication.setLocation((int)dim.getWidth(),(int)dim.getHeight()); 

J'espère que cela aide.