现在正在用SWT开发,SWT虽然对java的窗体开发提供了个很好的工具,但是在这几天的开发中,我发现一个比较严重的问题,这些窗体所用的样式都是系统的样式,而且,随着系统主题的改变,将会使原来固定位置的控件显得得放不下,比如,在windowx经典主题样式下,确认按钮离窗体的下边缘还有5pix,改成XP样式后,变成确认按钮有半个身子在窗体外看不到了!
于是我想,能不能自己定义个样式,让所有窗体都使用我自己的样式,而不使用系统样式呢?
现在问题是,在SWT中能不能使用自己定义的样式进行窗体及控件的样式设定?如何定义及使用这个样式?
在此先谢谢各位了!希望能给出好的建议!
SWT就是为了使用OS系统本地的Widget而设计,不会支持你说的那种样式的(曾经看到过有人在SWT使用过自绘的按钮,除特殊需求外,强烈不支持)。
在系统不同样式上,输出的界面是会有细微的差异。这种差异更多的时候,是体现在在不同OS上。比如,在Linux GTK下面调试好的界面,在Win下面可能就显示的不够友好。不过,这种问题是有办法解决的,Shell有两个方法,computSize、pack,在显示窗体前执行即可校正这个问题:
[code="java"]
shell.setSize(shell.computeSize(350,SWT.DEFAULT));
shell.pack();
[/code]