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指的是窗体的左上角坐标么?
如果是,我觉得我写的没错啊!
怎么回事?
展开
 我来答
焉高洁b9
2013-05-01 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:26.7万
展开全部
你把最后一行 s1.setLocation((width-400)/2,(height+300)/2);
改成 (height-300)/2 试试?
追问
改成减号就对了,但是我的意思是,理论上我觉得加号对啊,因为(x,y)指的是窗口的左上角坐标啊。。
追答
JAVA默认窗口向下是 Y轴正向  你把设置的 (height-300) 理解成 height/2 - 300/2 应该可以理解了吧   你的窗口左上角纵坐标坐标  就是你的屏幕高度一半  减去你窗口高度一半
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lsgggg123
2013-04-30 · 超过10用户采纳过TA的回答
知道答主
回答量:19
采纳率:0%
帮助的人:27.1万
展开全部

你真粗心。

(height+300)/2
(height-300)/2
更多追问追答
追问
我就是觉得加号才对啊,要不我还问什么啊
追答
你觉得是加号??你先给自己画个图出来。不要想当然。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lecroy03
2013-04-30 · TA获得超过313个赞
知道小有建树答主
回答量:240
采纳率:100%
帮助的人:145万
展开全部
s1.setLocationRelativeTo(null)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式