Java 如何更改ScrolledComposite';s水平滚动增量?

Java 如何更改ScrolledComposite';s水平滚动增量?,java,eclipse,scroll,swt,Java,Eclipse,Scroll,Swt,我有一个显示ScrolledComposite的应用程序。用户抱怨水平滚动增量太小,即每次单击水平滚动箭头当前都会一次移动一个像素。他们希望单独的点击能引起更大的水平移动。有人能解释一下我是如何实现这一点的吗?下面是一段代码: ScrolledComposite myScrolledComposite = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); if ( myScroll

我有一个显示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);
使用SWT Scrollbar类的setIncrement()方法。这使您可以修改按下箭头按钮时滚动区域的移动量。 使用SWT Scrollbar类的setIncrement()方法。这使您可以修改按下箭头按钮时滚动区域的移动量。
从组合中获取滚动条并设置其增量


myScrolledComposite.getVerticalBar().setIncrement(10)

从组合中获取滚动条并设置其增量


myScrolledComposite.getVerticalBar().setIncrement(10)

我知道这比你要求的要多,但我强烈建议你看看有平滑滚动实现的。这将使你的申请方式更酷


您可以查看它并查看其源代码-这是一个很好的示例(不过有点高级)。我知道这比您要求的要多,但我强烈建议您查看具有平滑滚动实现的。这将使你的申请方式更酷


您可以查看它并查看其源代码-这是一个很好的示例(不过有点高级)。这应该可以很好地工作,并提供可用的默认值。当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 ) );
        }
    }
});

这应该可以很好地工作,并提供可用的默认值。当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 ) );
        }
    }
});

您确定操作系统中未设置感光度吗?您确定操作系统中未设置感光度吗?谢谢。我查看了ScrolledComposite类,但没有想到查看Scrollbar类。谢谢。我查看了ScrolledComposite类,但没有考虑查看Scrollbar类。