Answers:
我总是这样做:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
this
JFrame涉及哪里?
setLocationRelativeTo(null)
即使在多显示器设置中,使用也会将其放在主显示器上。
传递给时,此方法会有特殊效果null
。根据Javadoc:
如果该组件为null,或者与此组件关联的GraphicsConfiguration为null,则将该窗口置于屏幕的中央。
这应该在设置大小或调用后完成 pack()
,但在将其设置为可见之前完成,如下所示:
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
setLocationRelativeTo
应在pack()方法调用后使用
.setSize()
。
您可以呼叫JFrame.setLocationRelativeTo(null)
将窗口居中。确保把这个放在前面JFrame.setVisible(true)
setLocationRelativeTo
应在pack()方法调用后使用
我将NetBeans IDE 7.2.1用作开发人员环境,并且可以在其中配置JForm属性。
在“ JForm属性”中,转到“代码”选项卡并配置“生成中心”。您需要先将“表单大小策略”设置为“生成调整大小代码”。
如果您明确指定setPreferredSize(new Dimension(X, Y));
,则最好使用:
setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);