Answers:
我总是这样做:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
thisJFrame涉及哪里?
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);