スライダ
2003.04.16 update.

一定の範囲内の数値を指定するスライダです。


import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;

public class swtTest {

  public static void main(String argv[]){

    Display display = new Display();
    Shell shell = new Shell(display);

    //ウィンドウのタイトルを指定
    shell.setText("swtTest");

    Slider slider = new Slider(shell,SWT.HORIZONTAL);
    slider.setBounds(10,10,160,20);
    slider.setMinimum(0);
    slider.setMaximum(100+10);
    slider.setIncrement(1);
    slider.setSelection(12);

    //スライダのイベントの設定
    slider.addSelectionListener(new SelectionListener() {
      public void widgetDefaultSelected(SelectionEvent e){
      }
      public void widgetSelected(SelectionEvent e){
        Slider bSlider = (Slider)e.widget;
        System.out.println(Integer.toString(bSlider.getSelection()));
      }
    });

    shell.setBounds(100,100,200,80);

    //イベントループ
    shell.open();
    while (!shell.isDisposed()){
      if (!display.readAndDispatch()){
        display.sleep();
      }
    }

    //破棄処理
    display.dispose();
  }
}




「Slider」のコンストラクタの第二引数にて「SWT.HORIZONTAL」と指定することにより、 水平方向のスライダを生成します。「SWT.VERTICAL」にて、垂直方向のスライダになります。
「setBounds」にて、表示位置と表示サイズを指定しています。
「setMinimum」にて、スライダの最小値を指定しています。
「setMaximum」にて、スライダの最大値を指定しています。ただし最大値は、 指定した値+10を指定しないと、正しい最大値にならない感じです。
例えば、「setMinimum(0)」「setMaximum(100+10)」と指定すると、 0から100の値がスライダより取得できます。
「setIncrement」にて、スライダの左右(または上下)の矢印により、 値が増加・減少する量を指定しています。
「setSelection」でスライダ上の位置を指定します。

イベントの取得は、「addSelectionListener」にて「SelectionListener」を登録することで行います。
「widgetSelected」にて、スライダの値が変更されたとき・選択されたときにイベントが呼ばれます。
「Slider bSlider = (Slider)e.widget;」でスライダのオブジェクトを取得し、 「getSelection」にて、スライダの値を取得しています。