6

Slider(org.eclipse.swt.widgets.Slider)を作成してそれを呼び出すgetMaximum()と、値は 100 になります。しかし、実際に Slider を最大値までドラッグしようとすると、90 にしか達しません。

この問題を回避できます。

sl.setSelection(sl.getMaximum());   // sl.getMaximum() is 100   
int actualMax = sl.getSelection();  // should be 100, but is actually 90

しかし、何かが間違いないようですよね?

4

3 に答える 3

5

ご存じのように、ウィジェットに他なりSliderませScrollBarん。設定する最大値は、 max_value + Thumb_value値と等しくなります。

このコードを試してください:

  final Slider slider = new Slider(shell, SWT.NONE);
  slider.setMaximum(100);
  slider.setMinimum(0);
  slider.setThumb(20);

  slider.addSelectionListener(new SelectionListener() {

    @Override
    public void widgetSelected(SelectionEvent e) {
        System.out.println( slider.getSelection()  +"   "+ slider.getThumb());
    }

    @Override
    public void widgetDefaultSelected(SelectionEvent e) {

      // TODO Auto-generated method stub

    }
  });
于 2012-12-17T20:26:54.163 に答える
1

SWT3.6.1およびSWT4.2.1を使用するWindows7でもこの動作を確認できます。

単純ですが、どういうわけか不満足な回避策は、次を使用することです。

sl.setMaximum(110);

次に、値の範囲は 0から100です。

于 2012-12-17T10:04:58.610 に答える