java:将窗口放在屏幕中央
importjavax.swing.*;importjava.awt.Toolkit;publicclassFirstGUI{publicstaticvoidmain(S...
import javax.swing.*;
import java.awt.Toolkit;
public class FirstGUI{
public static void main(String[] args){
JFrame s1 = new JFrame("My window");
s1.setVisible(true);
s1.setSize(400,300);
s1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//make this program quit when you close the window!
s1.setResizable(false);
//得到屏幕分辨率
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
System.out.println(width+" "+height);
s1.setLocation((width-400)/2,(height+300)/2);
}
}
为什么运行结果不对?setLocation中的参数x,y指的是窗体的左上角坐标么?
如果是,我觉得我写的没错啊!
怎么回事? 展开
import java.awt.Toolkit;
public class FirstGUI{
public static void main(String[] args){
JFrame s1 = new JFrame("My window");
s1.setVisible(true);
s1.setSize(400,300);
s1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//make this program quit when you close the window!
s1.setResizable(false);
//得到屏幕分辨率
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
System.out.println(width+" "+height);
s1.setLocation((width-400)/2,(height+300)/2);
}
}
为什么运行结果不对?setLocation中的参数x,y指的是窗体的左上角坐标么?
如果是,我觉得我写的没错啊!
怎么回事? 展开
展开全部
你把最后一行 s1.setLocation((width-400)/2,(height+300)/2);
改成 (height-300)/2 试试?
改成 (height-300)/2 试试?
追问
改成减号就对了,但是我的意思是,理论上我觉得加号对啊,因为(x,y)指的是窗口的左上角坐标啊。。
追答
JAVA默认窗口向下是 Y轴正向 你把设置的 (height-300) 理解成 height/2 - 300/2 应该可以理解了吧 你的窗口左上角纵坐标坐标 就是你的屏幕高度一半 减去你窗口高度一半
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你真粗心。
(height+300)/2
(height-300)/2
更多追问追答
追问
我就是觉得加号才对啊,要不我还问什么啊
追答
你觉得是加号??你先给自己画个图出来。不要想当然。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s1.setLocationRelativeTo(null)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询