GEF -- 学习一下调色板,我们不知道的东西(三)影子武士Tracker

http://www.cnblogs.com/wayne_wang/archive/2010/08/17/1801548.html

连接自:

在研究GEF的调色板实现时,发现了以前从没有用过的一个SWT控件,可能是因为我很少在程序中处理鼠标移动等等事件的原因吧。这个好东西就是Tracker,我非常希望能把它称为影子武士,因为Tracker常常和鼠标的点击、移动事件相配合,动态地显示所操作组件的位置大小的改变,从某种意义上来说Tracker非常像是SWT中的GEF Handle;

下面简要介绍一下它的基本使用;(插一句,在GEF的调色板实现中Tracker主要应用在了Sash Drag和调色板的Dock过程中)

Tracker直接继承自Widget,和其他的Widget一样,构造函数需要parent和style,其中parent就是我们需要跟踪的哪个控件,在这里就不赘述了。我之所以称Tracker为影子武士主要是因为Tracker可以通过一个阴影的方式显示一个矩形,这可以通过setRectangles方法来实现,有这个方法名称我们可以看出一个Tracker可以指定多个矩形,说句实话,我不是很明白设定多个矩形的必要在哪里,至少我现在还没有碰到。

当然能够设定矩形还不是最主要的,因为单单设定一个矩形的话,用户感受并不是很好,因此它还有一个方法:setStippled(boolean)用来指定是不是在Tracker中画点,这个自己试一试就知道了。一般设置为True比较好看;

此外,以上设定仅仅是基础参数的设定,那么Trcker本身是怎么工作的呢,这就要提到它的另一个方法open,只有调用了它,Tracker才会真正的显示出来,这个时候鼠标的移动就会被我们的影子武士表示出来了;

当然,为了更好的表示我们的移动方向,最好还要设置一下Tracker的cursor,方法是:setCursor;

总结一下Tracker的使用:

1、定义鼠标的点击、移动事件处理器;

2、定义Tracker为某一个组件的Tracker;

3、定义Tracker的cursor、矩形等等;

4、打开Tracker,即调用方法open;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值