グループ
2003.04.16 update.

ウィジットをグルーピングします。
Groupを親として、ラベル・テキスト・ボタンなどを作成することにより、 グループで相対的なレイアウトができるようになります。
また、ラジオボタンのように「複数から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");

    Label lab = new Label(shell,SWT.NONE);
    lab.setText("ラベル");
    lab.setBounds(10,10,120,24);

    Group gr = new Group(shell,SWT.NONE);
    gr.setText("Group");
    gr.setBounds(20,40,140,140);

    Label lab2 = new Label(gr,SWT.NONE);
    lab2.setText("ラベル2");
    lab2.setBounds(10,24,120,20);

    Button but = new Button(gr,SWT.PUSH);
    but.setText("ボタン");
    but.setBounds(10,44,120,20);

    Group gr2 = new Group(gr,SWT.NONE);
    gr2.setText("Group2");
    gr2.setBounds(10,70,120,50);

    Button but2 = new Button(gr2,SWT.PUSH);
    but2.setText("ボタン2");
    but2.setBounds(10,20,100,20);

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

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

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




「Group gr = new Group(shell,SWT.NONE);」によりグループを作成し、 「setText」でグループに表示するテキストを指定しています。
「setBounds」で表示位置と表示サイズを指定します。
この後、Label/Buttonなどのコンストラクタの第一引数にGroupオブジェクトを渡して、 Group内にウィジットを配置しています。
また、グループ内にグループを入れることもできます。
グループにウィジットを入れる場合は、「setLocation」「setBounds」で 指定する座標位置は、グループの起点を(0,0)としたときの相対位置になりますので 注意してください。