LocationRelativeTo (JAVA) 失败

LocationRelativeTo (JAVA) is Failing

我经常使用:

setLocationRelativeTo(null);

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

如果您知道这是怎么回事,或者如果您现在有另一种方法始终使 Jframe 出现在任何计算机的中间,请告诉我。

我这么说是因为我可以使用

setLocation(x,y);

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

如果我在这方面有误,请纠正我,我是 Java 的新手,所以我可能会错过很多比尔盖茨不会错过的事情。 (我现在windows没有编码在Java)

作为参考,这里有一个可以正常工作的例子;您可以将其与您当前的方法进行比较。特别是,

MCVE:

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

/** @see  */
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();
        });
    }
}