本文章针对新手,当然可能现在也没这么多人会看这部分内容了...
在window下,SWT的ScrolledComposite组件有一个缺陷,那就是内容不能超过32768像素,即短整形的长度。
对此的解决方法是不将拖动内容放在ScrolledComposite组件内部,而是在目标的下方或右方放置一个空的ScrolledComposite组件,根据目标的大小动态设置ScrolledComposite的大小。同时,根据滚动条滚动的距离来动态改变目标的内容。
有一点需要注意的是,ScrolledComposite的getOrigin()方法同样只能获取到32768,超出这个数字之后仍然返回32768,所有如果你的目标内容需要根据滚动距离变化且有可能超出32768的话,就需要换一种方式去获取。即先获取ScrolledComposite的水平滚动条和垂直滚动条ScrollBar对象,然后再获取ScrollBar对象的Selection值。
假如我想获取水平滚动距离,我可以这样实现:
ScrolledComposite horizontalScroll = ...
horizontalScroll.getHorizontalBar().getSelection();