Java 如何更改ScrolledComposite';s水平滚动增量?
我有一个显示ScrolledComposite的应用程序。用户抱怨水平滚动增量太小,即每次单击水平滚动箭头当前都会一次移动一个像素。他们希望单独的点击能引起更大的水平移动。有人能解释一下我是如何实现这一点的吗?下面是一段代码: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 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类。