免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4312 | 回复: 0
打印 上一主题 下一主题

按照屏幕比例改变窗口大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-07-08 21:33 |只看该作者 |倒序浏览
按照屏幕比例改变窗口大小

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()&#59;
    // java.awt.Dimension
    Dimension scrn = tk.getScreenSize()&#59;
    w.setSize( new Dimension((int)(scrn.width * ratioX)
                             (int)(scrn.height * ratioY)
              ) )&#59;
}
static public void sizeWindowOnScreen(Window w double ratio) {
    sizeWindowOnScreen(w ratio ratio)&#59;
}

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



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



static publicvoid resizeWindowToScreenPercentage(Window w double perc) {
    resizeWindowToScreenPercentage(wperc perc)&#59;
}
static public void resizeWindowToScreenPercentage(Window w double percX double percY)
{
    sizeWindowOnScreen(w percX/100percY/100)&#59;
}

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

static publicvoid maxWindowOnScreen(Window w) {
    sizeWindowOnScreen(w 1.0 1.0)&#59;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP