2012-08-22 66 views
3

我的问题很简单我猜... 我想我的Java框架居中当我运行我的程序。居中整个窗口Java

我用下面的代码:

setLocationRelativeTo(null); 

问题:

这是居中的帧,但不整个帧的左上角。我该如何纠正这个问题,并让整个框架居中?

谢谢你的帮助!

+0

在标题中加入“(已解决)”没有意义。如果你有你的答案,__accept__那! – 0605002

+0

@ FlopCoder:当我编辑它时,我不能等待几分钟。感谢您的理解。 – user1614914

回答

9

setLocationRelativeTo(null); ... 这是

看来这...呼叫在错误的时间所取得的帧的左上角,框架先后承担了自然大小前。要解决该问题,请按照此顺序进行。

  • 添加所有组件,给GUI一个大小。
  • 致电pack()可以使框架成为显示其当前包含的组件所需的最小尺寸。
  • 呼叫setLocationRelativeTo(null);

OTOH:如果您的计算机上运行的程序,走这一点。但是,如果你需要提供应用程序。对于像我这样的其他人,请考虑使用setLocationByPlatform(true)(下面的Windows演示)。

+1

这必须是被接受的答案。 – gontard

+0

@gontard我也这么认为!但是,提出这个问题的人要真正做出决定。当我发布这个答案时,已经有一个被接受的答案。但我希望注入一些其他想法,赚取一些赞成票,也许,也许,请求者改变主意。 ;) –

+0

你好,我刚刚阅读你的答案和其他评论,我必须承认你的答案是最好的,最简单的。我遵循你的建议,它工作正常。谢谢,至少我的代码会更“干净”。 – user1614914

0

你可以试试这个。它是在我的情况下工作。

Frame frame = new Frame("Centered Frame"); 
Dimension dimemsion = Toolkit.getDefaultToolkit().getScreenSize(); 
frame.setLocation(dimemsion.width/2-frame.getSize().width/2, 
        dimemsion.height/2-frame.getSize().height/2); 

如果您使用的是NetBeans,请转至platee manager - > property - > form Size策略。