Java窗体居中显示

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

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

Java窗体居中显示_第1张图片

从图中我们可以看出,如果计算出左上角的坐标,那么我们就可以确定我们的窗体在整个屏幕居中显示。窗体的宽度和高度,是通过我 们设定的(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窗体居中显示_第2张图片

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

你可能感兴趣的:(java,Date,api,String,Class,工具)