我有一个对话框类,其构造函数如下所示
public SampleDialog(JComponent parent, String title){
super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false);
setLocationRelativeTo(parent);
init();
}
然而,这会定位对话框,使其右上角位于其父级的中心。我希望对话框的中心位于父组件中心的顶部。我该怎么做呢?我做错了吗?
答案 0 :(得分:1)
我明白了。我不得不将setLocationRelativeTo(parent)移动到构造函数的末尾。它需要在调用pack()之后调用,我在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();
}
答案 1 :(得分:0)
我做了类似的事,但我用了
Dimension dim = Toolkit.getDefaultToolkit()
然后使用.getScreenSize,但我相信您可以用它来获取父应用程序的宽度和高度,如下所示:
myApplication.setLocation((int)dim.getWidth(),(int)dim.getHeight());
我希望这会有所帮助。