リストボックス
2003.04.18 update.

複数の項目より1つまたは複数を選択するためのリストボックスです。


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

    List list = new List(shell,SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
		
    list.setBounds(10,10,120,80);
    int i;
    for(i=0;i<20;i++){
      list.add("Item"+Integer.toString(i));
    }
    list.select(1);

    //イベントの設定
    list.addSelectionListener(new SelectionListener() {
      public void widgetDefaultSelected(SelectionEvent e){
      }
      public void widgetSelected(SelectionEvent e){
        List bList = (List)e.widget;

        String [] str = bList.getSelection();
        System.out.println(str[0]);
      }
    });
		
    shell.setBounds(100,100,200,140);

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

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




「List」のコンストラクタの第二引数でリストのスタイルを指定します。
「SWT.SINGLE」で単一選択、
「SWT.BORDER」で外枠有り、
「SWT.V_SCROLL」で垂直スクロールバー有り、
「SWT.H_SCROLL」で水平スクロールバー有り、
という意味になります。
また、「SWT.SINGLE」の代わりに「SWT.MULTI」を指定することで複数選択ができるようになります。
「setBounds」にて、表示位置と表示サイズを指定しています。
「add」で、リストの末尾にアイテム(文字列)を追加しています。
「select」で、リスト内の指定番目のアイテムを選択します。

文節です

これは文節です。