Java窗体居中显示

<!-- google_ad_client = "pub-4615277071069293"; /* 728x15, 创建于 08-6-6 */ google_ad_slot = "7146726956"; google_ad_width = 728; google_ad_height = 15; //-->

Java摘 要:在进行JavaGUI开发的过程中,经常为了考虑用户的方便,设置我们窗体的一些特性,本文就窗体定位做一说明。开发一个工具类,可以在开发的同时直接调用(含源代码, 例子)。

采用的计算方法就是通过Frame提供的API(setLoaction)计算出该窗体的左上角的坐标位置。整个思路如下图所示:

Java-Screen

从图中我们可以看出,如果计算出左上角的坐标,那么我们就可以确定我们的窗体在整个屏幕居中显示。窗体的宽度和高度,是通过我 们设定的(setSize),那么屏幕的宽度呢?我们每个人用的屏幕是不同的。别急,Java给我们提供了一个工具类(Toolkit),让我们来获得当前屏幕的宽度和高度。整个是实现 代码如下(使用例子在下):

  1. package net.csdn.blog.qb2049_xg.tools;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.awt.Toolkit;
  5. /**
  6. * @author Ulysses Ma
  7. * @Date 2008-9-7
  8. */
  9. public class MidScr
  10. {
  11. //设置坐标
  12. private int x=0;
  13. private int y=0;
  14. //构造函数
  15. public MidScr (Component jc)
  16. {
  17. //通过屏幕和控件的大小计算控件左上角的位置
  18. Dimension d_c=jc.getSize();
  19. Dimension d_scr=Toolkit.getDefaultToolkit ().getScreenSize();
  20. double x1=(d_scr.getWidth()-d_c.getWidth())/2;
  21. double y1=(d_scr.getHeight()-d_c.getHeight())/2;
  22. x=new Double(x1).intValue ();
  23. y=new Double(y1).intValue();
  24. }
  25. //获得坐标值
  26. public int getX()
  27. {
  28. return x;
  29. }
  30. public int getY()
  31. {
  32. return y;
  33. }
  34. }

中间想要说明的就是Dimension的使用,“Dimension 类封装单个对象中组件的宽度和高度(精确到整数)”,我们用它来封装我们的屏 幕和窗体的宽高。下面是使用的例子:

  1. package net.csdn.blog.qb2049_xg.exam;
  2. import javax.swing.JFrame;
  3. import net.csdn.blog.qb2049_xg.tools.MidScr;
  4. /**
  5. * @author Ulysses Ma
  6. * @date 2008-9-17
  7. */
  8. public class MidFrame extends JFrame
  9. {
  10. public MidFrame(){
  11. //这个地方比较关键,原因在于我们定位窗体时,需要使用这个方法设定的宽高
  12. this.setSize(400,500);
  13. this.setTitle("窗口居中显 示");
  14. this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  15. //使用中心定位窗体类
  16. MidScr ms=new MidScr(this);
  17. //设定窗体的左上坐标
  18. this.setLocation(ms.getX(), ms.getY ());
  19. this.setVisible(true);
  20. }
  21. public static void main(String args[]){
  22. //设置窗体的外观显示
  23. JFrame.setDefaultLookAndFeelDecorated(true);
  24. new MidFrame();
  25. }
  26. }

效果图如下:

Java-Screen

如果你要什么更好的建议或是错误提示,请你留下你的”评论“,非常感谢!

<!-- google_ad_client = "pub-4615277071069293"; /* 728x90, 创建于 08-6-3 */ google_ad_slot = "8286133791"; google_ad_width = 728; google_ad_height = 90; //-->

<!-- google_ad_client = "pub-4615277071069293"; /* 728x90, 创建于 08-8-21 */ google_ad_slot = "3138874845"; google_ad_width = 728; google_ad_height = 90; //-->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值