SWT Java Tutorial

HORIZONTAL_ALIGN_BEGINNING, HORIZONTAL_ALIGN_CENTER, HORIZONTAL_ALIGN_END, HORIZONTAL_ALIGN_FILL: Set the horizontalAlignment field to value BEGINNING, CENTER, END, and FILL, respectively.
VERTICAL_ALIGN_BEGINNING, VERTICAL_ALIGN_CENTER, VERTICAL_ALIGN_END, VERTICAL_ALIGN_FILL: Set the verticalAlignment field to value BEGINNING, CENTER, END, and FILL, respectively.
GRAB_HORIZONTAL: Sets the grabExcessHorizontalSpace field to true.
GRAB_VERTICAL: Sets the grabExcessVerticalSpace field to true.
FILL_HORIZONTAL: Sets the horizontalAlignment field to FILL and grabExcessHorizontalSpace to true.
FILL_VERTICAL: Sets the verticalAlignment field to FILL and grabExcessVerticalSpace to true.
FILL_BOTH: Sets the horizontalAlignment field and the verticalAlignment field to FILL and the grabExcessHorizontalSpace field and the grabExcessVerticalSpace field to true.
(Taken from Professional Java Interfaces with SWT/JFace
by Jackwind Li Guojie
John Wiley & Sons 2005)

/*
 All Right Reserved. Copyright (c) 1998, 2004 Jackwind Li Guojie
 Created on 2004-5-2 18:55:02 by JACK $Id$
*/
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class GridLayoutSimpleDmo {
  public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    GridLayout gridLayout = new GridLayout(4, false);
    gridLayout.verticalSpacing = 8;
    shell.setLayout(gridLayout);
    Label label = new Label(shell, SWT.NULL);
    label.setText("Title: ");
    Text title = new Text(shell, SWT.SINGLE | SWT.BORDER);
    GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    gridData.horizontalSpan = 3;
    title.setLayoutData(gridData);
    label = new Label(shell, SWT.NULL);
    label.setText("Author(s): ");
    Text authors = new Text(shell, SWT.SINGLE | SWT.BORDER);
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    gridData.horizontalSpan = 3;
    authors.setLayoutData(gridData);
    label = new Label(shell, SWT.NULL);
    label.setText("Cover: ");
    gridData = new GridData();
    gridData.verticalSpan = 3;
    label.setLayoutData(gridData);
    CLabel cover = new CLabel(shell, SWT.NULL);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 1;
    gridData.verticalSpan = 3;
    gridData.heightHint = 100;
    gridData.widthHint = 100;
    cover.setLayoutData(gridData);
    label = new Label(shell, SWT.NULL);
    label.setText("Pages");
    Text pages = new Text(shell, SWT.SINGLE | SWT.BORDER);
    pages.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    label = new Label(shell, SWT.NULL);
    label.setText("Publisher");
    Text publisher = new Text(shell, SWT.SINGLE | SWT.BORDER);
    publisher.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    label = new Label(shell, SWT.NULL);
    label.setText("Rating");
    Combo rating = new Combo(shell, SWT.READ_ONLY);
    rating.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    rating.add("5");
    rating.add("4");
    rating.add("3");
    rating.add("2");
    rating.add("1");
    label = new Label(shell, SWT.NULL);
    label.setText("Abstract:");
    Text bookAbstract = new Text(shell, SWT.WRAP | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL
        | SWT.V_SCROLL);
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
    gridData.horizontalSpan = 3;
    gridData.grabExcessVerticalSpace = true;
    bookAbstract.setLayoutData(gridData);
    Button enter = new Button(shell, SWT.PUSH);
    enter.setText("Enter");
    gridData = new GridData();
    gridData.horizontalSpan = 4;
    gridData.horizontalAlignment = GridData.END;
    enter.setLayoutData(gridData);
    title.setText("Professional Java Interfaces with SWT/JFace");
    authors.setText("Jack Li Guojie");
    pages.setText("500pp");
    publisher.setText("John Wiley & Sons");
    cover.setBackground(new Image(display, "yourFile.gif"));
    bookAbstract.setText("SWT/JFace. ");
    shell.setSize(450, 400);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
}