操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数据库 办公软件 路由技术 网络原理 网络架设 网络管理 认证培训
您的位置:计算机资讯网 >> 程序设计 >> Java 语言 >> 技巧教程 -> Java技巧:在屏幕上定位窗口
Java技巧:在屏幕上定位窗口
2004-10-13 10:03:27

  Java Abstract Window Toolkit(AWT)的Window.setLocation函数为开发人员提供了一个条理清晰的方法来解决在用户屏幕上定位一个窗口的问题。但用这个方法就必须考虑精确的象素点,这就很麻烦,而用一个类似于java.awt.BorderLayout的系统就要好的多。

  在BorderLayout中,各部分都是由下面这几个区域函数之一定位的:

  BorderLayout.NORTH
   BorderLayout.SOUTH
   BorderLayout.CENTER
   BorderLayout.WEST
   BorderLayout.EAST

  下面的代码用几乎相同的方法在屏幕上定位了一个窗口。它首先确定了五个固定的位置,然后用屏幕大小和窗口大小来定位一个窗口。

  package com.generationjava.awt;

  import java.awt.Dimension;
   import java.awt.Window;

  public final class WindowUtilities {

  // ints used so a case-switch statement can be used.
   static public final int TOP = 0;
   static public final int BOTTOM = 1;
   static public final int CENTER = 2;
   static public final int LEFT = 3;
   static public final int RIGHT = 4;

  /**
   * Position the given window on the screen at the given location,
   *
   * @param w Window to position
   * @param x int horizontal position
   * @param y int vertical position
   */
   static public void positionWindowOnScreen(Window w, int x, int y) {
     Dimension scrn = w.getToolkit().getScreenSize();
     Dimension win = w.getSize();
     int nx = 0;
     int ny = 0;
     switch(x) {
       case LEFT: nx = 0; break;
       case CENTRE: nx = (int)((scrn.width-win.width)/2); break;
       case RIGHT: nx = (int)(scrn.width-win.width); break;
       }
     switch(y) {
       case TOP: ny = 0; break;
       case CENTRE: ny = (int)((scrn.height-win.height)/2); break;
       case BOTTOM: ny = (int)(scrn.height-win.height); break;
     }
     w.setLocation(nx,ny);
     }
    }

  要确定一个窗口的右下角的位置,就要执行下面的代码:

   Window window = ....
   WindowUtilities.positionWindowOnScreen(window,_
   WindowUtilities.RIGHT, WindowUtilities.BOTTOM);

  该方法还可以进行扩展。你可以增加一个简单的centerWindowOnScreen函数,该函数调用了positionWindowOnScreen函数。例如:

  static public final void centerWindowOnScreen(Window w)
   {
     positionWindowOnScreen(w, CENTER, CENTER);
   }
   这两个函数简化了在AWT和Swing中所做的工作,使开发人员可以将更多的时间用在开发用户界面上。(zdnet china)

转自:不详 作者:未知 关闭
加入收藏 推荐给好友 打印本文
内容为网上收集,并不代表本站同意或者赞同其观点,如果有任何版权,内容问题,请联系本站,我们将在第一时间处理.
查询
关键字
搜索范围
热点专题
服务
计算机资讯网 | 联系方式 | 广告服务 | 意见留言 | 友情链接 | 网站地图 | 设为首页