- 論壇徽章:
- 0
|
按照屏幕比例改變窗口大小
Java Abstract Window Toolkit (AWT,抽象窗口工具包) 允許開發(fā)者通過setSize方法按照點(diǎn)來精確改變窗口大小。不過有時(shí)候用百分比或比例來指定窗口大小更容易。
下面的這個(gè)基本方法可以實(shí)現(xiàn)以上功能。窗口大小是一個(gè)“int”值,所以先將double值轉(zhuǎn)換為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);
}
不少開發(fā)者還是喜歡用百分比而不是比例(ratios)。比例和百分比之間只是一個(gè)數(shù)學(xué)上的轉(zhuǎn)換,并不影響API 對(duì)方法的調(diào)用。
應(yīng)該確保經(jīng)常用到方法,這樣,每個(gè)邏輯大小會(huì)被存放在不同區(qū)域,通過使用sizeWindowOnScreen (Window, double, double) 方法,百分比與比例的轉(zhuǎn)換會(huì)在一個(gè)區(qū)域里進(jìn)行,實(shí)際的大小不是被拷貝而是被重用了。例如:
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);
}
最后,也許有人希望把窗口大小設(shè)定為屏幕大小,MaxWindowOnScreen 這個(gè)方法可以實(shí)現(xiàn)上述功能。如下所示:
static publicvoid maxWindowOnScreen(Window w) {
sizeWindowOnScreen(w 1.0 1.0);
}
|
|