『壹』 如何编写一个漂亮的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)函数在里面画你想画的图片就可以了