プログレスバー
2003.04.16 update.

ある一定範囲のうちの状態推移などを表すためのプログレスバーです。
全体で100%のうち何%か、というのを表したりできます。


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");

    ProgressBar pbar = new ProgressBar(shell,SWT.HORIZONTAL);
    pbar.setBounds(10,10,160,20);
    pbar.setMinimum(0);
    pbar.setMaximum(100);
    pbar.setSelection(12);

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

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

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




「ProgressBar」のコンストラクタの第二引数にて「SWT.HORIZONTAL」を指定すると、 水平方向のプログラスバーになります。「SWT.VERTICAL」で垂直方向のプログレスバーになります。
「setBounds」で、プログレスバーの表示位置と表示サイズを指定しています。
「setMinimum」で、プログレスバーの範囲の最小値を指定しています。
「setMaximum」で、プログレスバーの範囲の最大値を指定しています。
プログレスバーの値は、「setMinimum」で指定した値から「setMaximum」で指定した値の範囲を取ります。
「setSelection」でプログレスバーの値を指定します。

このプログレスバーは表示用であるため、特に特記すべきイベント処理はありません。

プログレスバーのスタイル

スムーズなプログレスバー

プログレスバーの表示をスムーズなルック&フィールにするには、ProgressBarのコンストラクタの第二引数にて「SWT.SMOOTH」を 指定します。


ProgressBar pbar = new ProgressBar(shell,SWT.HORIZONTAL | SWT.SMOOTH);
pbar.setBounds(10,10,160,20);




垂直方向のプログレスバー

垂直方向のプログレスバーを表示する場合は、ProgressBarのコンストラクタの第二引数にて「SWT.VERTICAL」を 指定します。


ProgressBar pbar = new ProgressBar(shell,SWT.VERTICAL);
pbar.setBounds(10,10,16,100);