首页 > 解决方案 > 我一直试图让它从屏幕中央开始

问题描述

这是 JavaSE-11,因为我认为它是 Java 的最新 LTS 版本,并且我使用的是 Eclipse IDE。请有人告诉我如何在运行时将其置于屏幕中央。

package Main;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class GUI extends JFrame{
    
    protected static final ImageIcon ICON = new ImageIcon("Image.png");

    public static void main(String[] args){
        new GUI();
    }

    public GUI(){
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setPreferredSize(new Dimension(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2));
        setTitle("GUI");
        setIconImage(ICON.getImage());
        pack();
        setVisible(true);
    }
}

标签: javaswingjframe

解决方案


您可以使用:

frame.setLocationRelativeTo( null );

确定框架大小后。

因此,代码的基本结构应该是:

frame.add(...);
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible( true );

推荐阅读