3

我想我的问题很简单……我想在运行程序时让我的 java Frame 居中。

我使用了以下代码:

    setLocationRelativeTo(null);

问题 :

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

谢谢您的帮助!

4

2 回答 2

9

setLocationRelativeTo(null);...这是框架的左上角...

在框架呈现自然大小之前,似乎是在错误的时间进行调用。要解决此问题,请按此顺序进行。

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

OTOH:如果它是您的程序在您的计算机上运行,​​那就去吧。但是,如果您需要提供该应用程序。对于像我这样的其他人,请考虑使用setLocationByPlatform(true)(Windows 演示。下面)。

于 2012-08-22T12:28:21.980 回答
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,请转到板块管理器 -> 属性 -> 表单大小策略。

于 2016-01-19T06:28:32.440 回答