最近接手一个java的桌面应用项目,需要对这个项目做二次开发,同时也是第一次接触swt。
基本上很多项目,都会需要做产品展示列表,通常都是采用滚动面板+滚动条的方式做滚动显示。但是这个swt就有个限制,里面控件的location的值是short类型,意味着最大不能超过32767,超过后你再setLocation也是只能是在32767这个位置。在数据量比较大的时候,排序下去明显不够排。于是想到一个办法来避开这个限制:做一个ScrolledComposite,设置大小只显示滚动条,它的面板就自己做一个普通的Composite来控制显示。接着做个算法。使Composite在滚动条滚动时的Location大于30000的时候,重要归零开始计算。这样就可以实现无限地滚动。
只做个思路的记录,代码无法提供,一来写得也比较多,结合其他功能,二来项目也不允许公开。
网友评论