我有一个显示ScrolledComposite的应用程序。用户抱怨水平滚动增量太细,即水平滚动箭头上的每次点击当前一次将条移动一个像素。他们希望单击会导致更大的水平移动。有人可以解释我如何实现这个?代码片段如下:
ScrolledComposite myScrolledComposite = new ScrolledComposite(parent,
SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
if ( myScrolledComposite == null) {
throw new NullPointerException("ScenePreView.java: " +
"Method createPartControl() " +
"ScrolledComposite myScrolledComposite == null.");
}
Composite myComposite = new Composite(myScrolledComposite, SWT.NONE);
if ( myComposite == null) {
throw new NullPointerException("ScenePreView.java: " +
"Method createPartControl() " +
"Composite myComposite == null.");
}
myScrolledComposite.setContent(myComposite);
答案 0 :(得分:3)
这应该可以很好地工作并提供可用的默认值。当ScrolledComposite中的控件调整大小时,它应该自动更新。
myComposite.addControlListener( new ControlAdapter() {
@Override
public void controlResized( ControlEvent e ) {
ScrollBar sbX = scrolledComposite.getHorizontalBar();
if ( sbX != null ) {
sbX.setPageIncrement( sbX.getThumb() );
sbX.setIncrement( Math.max( 1, sbX.getThumb() / 5 ) );
}
}
});
答案 1 :(得分:2)
从复合中获取滚动条并设置它的增量。
myScrolledComposite.getVerticalBar()setIncrement(10);
答案 2 :(得分:0)
使用SWT Scrollbar类的setIncrement()方法。这使您可以修改按下箭头按钮时滚动区域移动的量。 See API Reference for SWT
答案 3 :(得分:0)
我知道这比你要求的要多,但我强烈建议你查看具有平滑滚动功能的SWT animation toolkit。它会使你的应用程序更酷。
您可以查看它并查看来源 - 这是一个很好的例子(但是,有点高级)如何使用滚动。