在SWT中自定义Splitbutton控件

最近把自己原来做的一些SWT的控件整理了一下, 放到了google code上, 希望对于用SWT写客户端的朋友有所帮助和启发。 http://code.google.com/p/swtsplitbutton/

 

自从微软发布Ribbon风格的界面以后, 在windows平台中Splitbutton成为了一个越来越常用的控件。

 

所谓的SplitButton控件就是在一个按钮的一边显示小箭头,点击这个箭头后展示出分级的功能菜单, 点击非小箭头的区域就和点击普通按钮一样,执行默认的点击事件。 使用Splitbutton节约界面的空间,提高控件的表达能力, 使用一个按钮就实现了原来需要一组按钮实现的功能, 提高界面人性, 并使界面美观简洁。

 

Splitbutton有这那么多的好处, 但SWT并不提供这个Vistal以后才出现的控件, 所以我只好自己模仿做一个了。

 

设计的基本思想是这样的

Splitbutton也是一个按钮, 我们可以在按钮重绘的时候在按钮的右边画一根分割线和一个黑色的小箭头。 然后监视鼠标事件, 如果发生鼠标单击的时候,鼠标的位置是分割线的右面, 小箭头所属的区域, 则在按钮的下放弹出菜单, 反之则执行单击事件。

 

效果图:

 

在SWT中自定义Splitbutton控件_第1张图片

 

源码和使用的代码实例我都放在google code上了, 此外还有不同平台下的效果截图。

如果有什么问题希望大家和我交流。

 

 

 

你可能感兴趣的:(在SWT中自定义Splitbutton控件)