【问题标题】:Centering the entire window Java居中整个窗口Java
【发布时间】:2012-08-17 20:27:55
【问题描述】:

我想我的问题很简单...... 当我运行我的程序时,我希望我的 java Frame 居中。

我使用了以下代码:

    setLocationRelativeTo(null);

问题:

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

感谢您的帮助!

【问题讨论】:

  • 在标题中添加“(已解决)”没有意义。如果您有答案,请接受
  • @ FlopCoder : 我编辑的时候不能,我得等几分钟。感谢您的理解。

标签: java swing awt frame center


【解决方案1】:

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

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

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

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

【讨论】:

  • @gontard 我也这么认为!但真正由提出问题的人做出决定。当我发布这个答案时,已经有一个接受的答案。但我希望注入一些其他的想法,获得一些支持,也许,..只是也许,让提问者改变主意。 ;)
  • 您好,我刚刚阅读了您的回答和其他有关它的问题,我必须承认您的回答是最好的,也是最简单的。我听从了你的建议,效果很好。谢谢,至少我的代码会更“干净”。
  • 对不起,丹,请不要客气,我不想伤害你……无论如何,谢谢你的帮助!
【解决方案2】:

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

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,请转到板块管理器 -> 属性 -> 表单大小策略。

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多