首页
论坛
图书
开发资料
在线文档
网址
下载
联系我们
 新闻│Java│JavaScript│Eclipse│Eclipse 英文│J2EE│J2ME│J2SE│JSP│Netbeans│Hibernate│JBuilder│Spring│Struts
站内搜索: 请输入搜索关键词

当前页面: 开发资料首页 → Java 专题 → Java技巧:在屏幕上定位窗口

Java技巧:在屏幕上定位窗口

摘要: Java技巧:在屏幕上定位窗口

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="479" height="86" align="center" valign="top">

 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中所做的工作,使开发人员可以将更多的时间用在开发用户界面上。



</td> <td width="226" valign="top"> </td> </tr> <tr> <td height="20" colspan="2">


</td> </tr> </table>

 


function TempSave(ElementID) { CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value); CommentsPersistDiv.save("CommentXMLStore"); } function Restore(ElementID) { CommentsPersistDiv.load("CommentXMLStore"); document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent"); } </td> </tr> <tr>


↑返回目录
前一篇: Java中static、this、super、final用法
后一篇: Java继承与派生时的多态性与方法重写

首页 | 全站 Sitemap | 联系我们 | 设为首页 | 收藏本站
版权所有 Copyright © 2006-2007, Java 编程资料牛鼻站, All rights reserved