问题描述
这是 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);
}
}
解决方法
您可以使用:
frame.setLocationRelativeTo( null );
在确定框架的大小之后。
所以,代码的基本结构应该是:
frame.add(...);
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible( true );
,
int w = this.getPreferredSize().width/2;
int y = this.getPreferredSize().height/2;
int dimw = dim.width/2;
int dimh = dim.height/2;
setLocation( dimw-w,dimh-y);