Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LocationRelativeTo(JAVA)正在失败_Java_Swing_Jframe - Fatal编程技术网

LocationRelativeTo(JAVA)正在失败

LocationRelativeTo(JAVA)正在失败,java,swing,jframe,Java,Swing,Jframe,我经常使用: setLocationRelativeTo(null); 在我的JFrror构造函数中,P>使帧出现在中间,但是现在它不能正常工作。它只是把JFrame放在一个角落里 如果你知道会发生什么,或者如果你现在有另一种方法总是让Jframe出现在任何计算机的中间,请告诉我 我这样说是因为我可以 setLocation(x,y); 只要把坐标放在我的屏幕的中心,但是,例如,如果我的电脑是1920 x 1080,那么在1280 x 720的电脑中,Jframe不会出现在中心 如果我错了,

我经常使用:

setLocationRelativeTo(null);
在我的JFrror构造函数中,P>使帧出现在中间,但是现在它不能正常工作。它只是把JFrame放在一个角落里

如果你知道会发生什么,或者如果你现在有另一种方法总是让Jframe出现在任何计算机的中间,请告诉我

我这样说是因为我可以

setLocation(x,y);
只要把坐标放在我的屏幕的中心,但是,例如,如果我的电脑是1920 x 1080,那么在1280 x 720的电脑中,Jframe不会出现在中心


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

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

  • Swing GUI对象应仅在上构造和操作

  • 确保
    pack()

  • 调用
    setVisible(true)
    作为创建GUI的最后一步

:

考虑提供一个说明你的问题的方法。这不是一个代码转储,而是您正在做的一个示例,它突出了您所遇到的问题。这将减少混乱和更好的响应
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();
        });
    }
}