网站首页 | 文章中心 | 源码中心 | 虚拟主机 | 域名注册 |  贺卡源码 | Java特效 |
您现在的位置: 人文中国 >> 文章中心 >> asp基础 >> 文章正文

  没有公告

java技巧:如何在屏幕上定位窗口     ★★★★★ 【字体:
java技巧:如何在屏幕上定位窗口
作者:renwen    文章来源:本站原创    点击数:    更新时间:2004-4-15
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中所做的工作,使开发人员可以将更多的时间用在开发用户界面上。

文章录入:renwen@renwen.net    责任编辑:renwen@renwen.net 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    cn域名48元,com域名55元
    Java实现类MSN、QQ好友上线通…
    新手问题
    JavaScript技巧4例
    JScript Error Messages (J…
    javascript精品源代码--鼠标…
    代理合同
    多多指教!!
    去GG寝室的死法
    姑娘,俺要性骚扰你
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)