按照屏幕比例改变窗口大小

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

Java Abstract Window Toolkit (AWT,抽象窗口工具包) 允许开发者通过setSize方法按照点来精确改变窗口大小。不过有时候用百分比或比例来指定窗口大小更容易。

下面的这个基本方法可以实现以上功能。窗口大小是一个“int”值,所以先将double值转换为int,改变值就可以改变窗口大小了。

/**

* Resizes the given window to the givenratio of the screen size

*

* @param w Window to resize.

* @param ratioX double value to changethe window horizontal size to.

* @param ratioY double value to changethe window vertical size to.

*/

static public void sizeWindowOnScreen(Window w double ratioX double ratioY)

{

// java.awt.Toolkit

Toolkit tk = w.getToolkit();

// java.awt.Dimension

Dimension scrn = tk.getScreenSize();

w.setSize( new Dimension((int)(scrn.width * ratioX)

(int)(scrn.height * ratioY)

) );

}

static public void sizeWindowOnScreen(Window w double ratio) {

sizeWindowOnScreen(w ratio ratio);

}

不少开发者还是喜欢用百分比而不是比例(ratios)。比例和百分比之间只是一个数学上的转换,并不影响API 对方法的调用。

应该确保经常用到方法,这样,每个逻辑大小会被存放在不同区域,通过使用sizeWindowOnScreen (Window, double, double) 方法,百分比与比例的转换会在一个区域里进行,实际的大小不是被拷贝而是被重用了。例如:

static publicvoid resizeWindowToScreenPercentage(Window w double perc) {

resizeWindowToScreenPercentage(wperc perc);

}

static public void resizeWindowToScreenPercentage(Window w double percX double percY)

{

sizeWindowOnScreen(w percX/100percY/100);

}

最后,也许有人希望把窗口大小设定为屏幕大小,MaxWindowOnScreen 这个方法可以实现上述功能。如下所示:

static publicvoid maxWindowOnScreen(Window w) {

sizeWindowOnScreen(w 1.0 1.0);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有