明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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

[摘要]Java Abstract Window Toolkit (AWT,抽象窗口工具包) 允許開發(fā)者通過setSize方法按照點來精確改變窗口大小。不過有時候用百分比或比例來指定窗口大小更容易。 下面的...
Java Abstract Window Toolkit (AWT,抽象窗口工具包) 允許開發(fā)者通過setSize方法按照點來精確改變窗口大小。不過有時候用百分比或比例來指定窗口大小更容易。



下面的這個基本方法可以實現(xiàn)以上功能。窗口大小是一個“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);

}



不少開發(fā)者還是喜歡用百分比而不是比例(ratios)。比例和百分比之間只是一個數(shù)學上的轉換,并不影響API 對方法的調用。



應該確保經(jīng)常用到方法,這樣,每個邏輯大小會被存放在不同區(qū)域,通過使用sizeWindowOnScreen (Window, double, double) 方法,百分比與比例的轉換會在一個區(qū)域里進行,實際的大小不是被拷貝而是被重用了。例如:



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 這個方法可以實現(xiàn)上述功能。如下所示:



static publicvoid maxWindowOnScreen(Window w) {

sizeWindowOnScreen(w 1.0 1.0);