国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

按屏幕比例重新設定窗口的大小

2019-11-18 15:12:44
字體:
來源:轉載
供稿:網友

  作者: BUILDER.COM

java Abstract Window Toolkit(AWT)的setSize函數使開發人員可以精確到以象素為單位設置一個窗口的大小。但是通常來講,把一個窗口的大小設置為屏幕大小的某個比例或百分比會輕易的多。

下面的基本函數就完成了這個任務。其中size被設置為“int”型,因此當一個新的size被計算出來后,就會從浮點型變量被轉換成整型變量。當水平比例和垂直比例一樣時,該函數就會提供一個更簡單的函數指令,但這會發生超載現象,產生計算錯誤。

/**
* Resizes the given window to the given ratio of the screen size,
*
* @param w Window to resize.
* @param ratioX double value to change the window horizontal size to.
* @param ratioY double value to change the 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);
}
一些開發人員更喜歡用百分比而不是比例。雖然二者在算術上有一些差異,但這并不影響向應用程序界面(API)添加一些新的函數,而這些函數可以把比例當作百分比來用。

一定要盡可能地重復使用每個函數,因為這樣可以保證每條邏輯都只存儲在一個位置。這樣做的結果就是百分比到比例的轉換只存在于一個位置,而且真正計算size的邏輯并沒有被復制,而只是通過調用sizeWindowOnScreen (Window, double, double)函數被重復使用了。例如:

static public void resizeWindowToScreenPercentage(_
Window w, double perc) {resizeWindowToScreenPercentage(w, perc, perc);
}
static public void resizeWindowToScreenPercentage(_
Window w, double percX, double percY)
{
sizeWindowOnScreen(w, percX/100, percY/100);
}

最后,開發人員可能希望把窗口大小設置為和屏幕大小一樣,因此開發了一個省事的窗口最大化函數。MaxWindowOnScreen提供了這個功能。我們再次使用前面的函數,就像下面這樣:

static public void maxWindowOnScreen(Window w) {
sizeWindowOnScreen(w, 1.0, 1.0);
}
以上這些設定窗口大小的函數都幫助開發人員簡化了AWT和Swing代碼。更重要的是,這些方法都完美的確保了所有的邏輯都只存儲在一個位置,因此當超載或增加類似功能時,開發人員也可以很輕易的維護和修改代碼。

上一篇:安裝JRun

下一篇:安全的代價

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台山市| 东莞市| 兴安县| 临武县| 宣汉县| 清新县| 保康县| 鄢陵县| 衡南县| 伊宁市| 卢龙县| 错那县| 藁城市| 玛沁县| 石河子市| 长治市| 四子王旗| 枣阳市| 甘肃省| 蓝山县| 历史| 临武县| 栾城县| 射阳县| 许昌市| 黔江区| 平凉市| 准格尔旗| 双峰县| 绩溪县| 随州市| 清流县| 永仁县| 博爱县| 七台河市| 尼勒克县| 罗定市| 会宁县| 榆社县| 延寿县| 阳信县|