『壹』 如何編寫一個漂亮的SWT/RCP界面
java自從 1995 年發布以來,其圖形界面一直為世人所詬病。無論是早期的 AWT,還是後來的 Swing 應用程序不能像本地應用程序一樣執行,外觀也不一樣,響應的速度也不快。SWT 吸收了 AWT 和 Swing 實現的最好的部分 : 當可以得到本地組件時調用本地實現,當不能得到本地組件時使用 Java 實現。這就同時保證了與本地窗口部件相當的外觀,又提高了響應速度。
目前 SWT 已被廣泛應用於開發 JAVA 富客戶端,但是基於 SWT/RCP 的應用程序界面都是經典的 Eclipse 界面風格 : 藍色的標題欄、灰色的工具欄和狀態欄、四方形的視圖和編輯器、還是四方的控制項,這些界面過於樸素,缺乏吸引力。
其實我們可以基於 SWT/RCP,編寫漂亮 GUI 的界面。自定義窗口的形狀,通過圖片背景來美化 SWT/RCP 窗體界面。窗體可以是多邊形,如矩形、圓形、以及這些形狀的疊加。按鈕控制項也可以任意多邊形。
下圖是經典的 Eclipse 風格界面和美化後界面的比較:左面是一個經典的 SWT/RCP 窗體界面;右面是美化後的窗體,黑色的外框由一個矩形和一個圓形的疊加而成、圓形的播放按鈕、圓弧形的退出按鈕、不規則的放映視圖等。
生成圓形坐標數組的函數代碼如下:
清單 2. 生成圓形坐標數組的函數代碼
int[]circle(intr,intoffsetX,intoffsetY){
int[]ring=newint[8*r+4];
//x^2+y^2=r^2
for(inti=0;i<2*r+1;i++){
intx=i-r;
inty=(int)Math.sqrt(r*r-x*x);
ring[2*i]=offsetX+x;
ring[2*i+1]=offsetY+y;
ring[8*r-2*i-2]=offsetX+x;
ring[8*r-2*i-1]=offsetY-y;
}
returnring;
}
來源:ibm 作者:饒有清
『貳』 java swing 編程中如何美化窗口
可以通過繼承JPanel類,然後覆蓋其中的paintComponet(Graphics g)函數在裡面畫你想畫的圖片就可以了