我想我的问题很简单……我想在运行程序时让我的 java Frame 居中。
我使用了以下代码:
setLocationRelativeTo(null);
问题 :
这是居中的框架的左上角,但不是整个框架。请问我该如何纠正这个问题,并使全帧居中?
谢谢您的帮助!
setLocationRelativeTo(null);
...这是框架的左上角...
在框架呈现自然大小之前,似乎是在错误的时间进行调用。要解决此问题,请按此顺序进行。
pack()
以使框架成为显示其当前包含的组件所需的最小尺寸。setLocationRelativeTo(null);
OTOH:如果它是您的程序在您的计算机上运行,那就去吧。但是,如果您需要提供该应用程序。对于像我这样的其他人,请考虑使用setLocationByPlatform(true)
(Windows 演示。下面)。
你可以试试这个。它在我的情况下工作。
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,请转到板块管理器 -> 属性 -> 表单大小策略。