无论显示器分辨率如何,如何将JFrame设置为居中显示?

时间:2010-03-14 15:18:49

标签: java swing jframe position

在使用Java时,我发现在启动应用程序时很难将主窗口放在屏幕中央。

我有什么方法可以做到吗? 它不必垂直居中,水平对齐对我来说是更重要的目标。但垂直对齐也很受欢迎。

13 个答案:

答案 0 :(得分:495)

使用setLocationRelativeTo(null)

当您将null传递给它时,此方法会产生特殊效果。根据Javadoc:

  

如果组件为null,或者与此组件关联的GraphicsConfiguration为null,则窗口将放置在屏幕的中心。

这应该在设置尺寸或致电pack()后进行,但在将其设置为可见之前,请执行以下操作:

frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

答案 1 :(得分:218)

我总是这样做:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);

其中this是所涉及的JFrame。

答案 2 :(得分:53)

您可以致电JFrame.setLocationRelativeTo(null)以使窗口居中。请务必将其放在JFrame.setVisible(true)

之前

答案 3 :(得分:26)

只需点击表单,然后转到JFrame属性,然后转到代码标签,然后检查Generate Center

enter image description here

答案 4 :(得分:11)

这很简单......

setSize(220, 400);
setLocationRelativeTo(null);  

或者如果您使用的是帧,请将帧设置为

frame.setSize(220, 400);
frame.setLocationRelativeTo(null);  

澄清,from the docs

  

如果组件为null,或者与此组件关联的GraphicsConfiguration为null,则窗口将放置在屏幕的中心。

答案 5 :(得分:7)

我使用NetBeans IDE 7.2.1作为开发人员环境,您可以选择配置JForm属性。

在JForm属性中的

转到“代码”选项卡并配置“生成中心”。 您需要先将表单大小策略设置为“生成调整大小代码”。

答案 6 :(得分:7)

添加此内容后,您将获得尺寸设置:

frame.setLocationRelativeTo(null);

答案 7 :(得分:6)

我正在使用NetBeans IDE 7.3,这就是我集中管理JFrame的方法 确保单击JFrame面板并转到JFrame属性栏,单击代码栏并选择Generate Center复选框。

答案 8 :(得分:2)

如果使用NetBeans,只需单击设计视图上的框架,然后单击其属性上的代码选项卡。接下来,选中“生成中心”。这将完成工作。

答案 9 :(得分:1)

您可以使用此方法,该方法允许JFrame同时居中并全屏显示。

yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);

答案 10 :(得分:0)

在Net Beans GUI中- 转到jframe(在导航器中的 jFrame 上单击右键单击)属性,在 code 表单大小政策 属性,选择 生成调整大小代码 。在同一窗口中, 取消勾选生成位置 勾选生成尺寸和中心

享受编程。 拉玛娜

答案 11 :(得分:0)

对于Java Swing:

转到“导航器”->“ JFrame”->“属性”->“代码”->选中“生成中心”

答案 12 :(得分:-1)

这对我有用:

工具包工具包= getToolkit();

尺寸大小= toolkit.getScreenSize();

setLocation(size.width / 2-getWidth()/ 2,size.height / 2-getHeight()/ 2);