LocationRelativeTo(JAVA)失败

时间:2015-04-15 04:20:49

标签: java swing jframe

我经常使用:

setLocationRelativeTo(null);

在我的JFrame构造函数中,使Frame显示在中间,但现在它不起作用。它只是把JFrame放在一个角落里。

如果你知道发生了什么,或者现在你想让Jframe出现在任何计算机中间的另一种方式,请告诉我。

我说这是因为我可以使用

setLocation(x,y);

并且只是放置将Jframe放在我的屏幕中心的坐标,但是,例如,如果我的PC是1920 x 1080,Jframe将不会出现在1280 x 720 PC的中央。

如果我错了,请纠正我,我是Java的新手,所以我可以错过比尔盖茨不会错过的很多东西。 (我现在的Windows不是用Java编写的)

1 个答案:

答案 0 :(得分:1)

供参考,这是一个正常工作的例子;你可以将它与你目前的方法进行比较。特别是,

MCVE

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;

/** @see https://stackoverflow.com/a/29643591/230513 */
public class Test {

    private void display() {
        JFrame f = new JFrame("Test");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(new JLabel("Test", JLabel.CENTER));
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
                new Test().display();
        });
    }
}