如何设置JFrame以显示居中,而不管显示器分辨率如何?

2022-08-31 05:53:29

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

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


答案 1

使用 setLocationRelativeTo(null)

此方法具有特殊效果,当您向它传递一个 .根据Javadoc的说法:null

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

这应该在设置大小或调用之后完成,但在将其设置为可见之前,如下所示:pack()

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

答案 2

我总是以这种方式做到这一点:

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

其中涉及的 JFrame。this