我想将帧定位在屏幕的中心,但是当我输入f.setLocationRelativeTo(null)时。它将它定位在右下角。代码有问题吗?如果是这样,我怎样才能将其更改为框架中心?
public class Maze {
public static void main(String[] args) {
new Maze();
}
public Maze(){
JFrame f = new JFrame();
f.setTitle("Maze Game");
//f.add(new board());
f.setLocationRelativeTo(null);
f.setSize(500, 400);
f.setVisible(true);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
}
}
答案 0 :(得分:3)
当您使用setLocationRelativeTo()
作为参数致电null
时,您必须先致电setSize()
。否则,即使您的框架看起来像是程序其余部分的500x400窗口(对您而言!),对于setLocationRelativeTo()
方法,它基本上看起来像一个无量纲点(窗口的左上角) ....这将是它的中心,导致窗口出现在右下角。
答案 1 :(得分:0)
您要完成的任务应如下所示:
public static void main(String[] args) {
new Maze();
}
public Maze(){
JFrame f = new JFrame();
f.setTitle("Maze Game");
f.add(new board());
//Notice I took out your comment over f.add to show the f.pack() method and where
//your 'setLocationRelativeTo(null); statement should go in terms of it.
f.setSize(500, 400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//NOTICE! I changed the above line from (f.EXIT_ON_CLOSE) to (JFrame.EXIT_ON_CLOSE)
// DO NOT LOOK OVER THAT!
f.pack();
f.setLocaitonRelativeTo(null);
}
关于秩序,我的朋友。