A Sample GUI Using GridLayouts : GridLayout « SWT « Java Tutorial






  1. HORIZONTAL_ALIGN_BEGINNING, HORIZONTAL_ALIGN_CENTER, HORIZONTAL_ALIGN_END, HORIZONTAL_ALIGN_FILL: Set the horizontalAlignment field to value BEGINNING, CENTER, END, and FILL, respectively.
  2. VERTICAL_ALIGN_BEGINNING, VERTICAL_ALIGN_CENTER, VERTICAL_ALIGN_END, VERTICAL_ALIGN_FILL: Set the verticalAlignment field to value BEGINNING, CENTER, END, and FILL, respectively.
  3. GRAB_HORIZONTAL: Sets the grabExcessHorizontalSpace field to true.
  4. GRAB_VERTICAL: Sets the grabExcessVerticalSpace field to true.
  5. FILL_HORIZONTAL: Sets the horizontalAlignment field to FILL and grabExcessHorizontalSpace to true.
  6. FILL_VERTICAL: Sets the verticalAlignment field to FILL and grabExcessVerticalSpace to true.
  7. 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)

A Sample GUI Using GridLayouts
/*
 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();
  }
}








17.96.GridLayout
17.96.1.Using GridLayout
17.96.2.Use GridLayout to layout a dialogUse GridLayout to layout a dialog
17.96.3.Using GridLayout with all default valuesUsing GridLayout with all default values
17.96.4.GridLayout: horizontalSpacing, verticalSpacingGridLayout: horizontalSpacing, verticalSpacing
17.96.5.GridLayout: marginHeight, marginWidthGridLayout: marginHeight, marginWidth
17.96.6.GridLayout: numColumnsGridLayout: numColumns
17.96.7.GridLayout: makeColumnsEqualWidthGridLayout: makeColumnsEqualWidth
17.96.8.Using GridData ObjectsUsing GridData Objects
17.96.9.The verticalAlignment specifies the vertical positioning.The verticalAlignment specifies the vertical positioning.
17.96.10.Horizontal IndentationHorizontal Indentation
17.96.11.Horizontal Span and Vertical SpanHorizontal Span and Vertical Span
17.96.12.Grabbing Excess Space: grabExcessHorizontalSpace and grabExcessVerticalSpaceGrabbing Excess Space: grabExcessHorizontalSpace and grabExcessVerticalSpace
17.96.13.Enable more than one control to grab excess vertical spaceEnable more than one control to grab excess vertical space
17.96.14.Make more than one control to grab excess space in the same directionMake more than one control to grab excess space in the same direction
17.96.15.Size Hints: widthHint and heightHintSize Hints: widthHint and heightHint
17.96.16.A Sample GUI Using GridLayoutsA Sample GUI Using GridLayouts
17.96.17.GridLayout Column 2GridLayout Column 2
17.96.18.GridLayout 2x2GridLayout 2x2
17.96.19.GridLayout ComplexGridLayout Complex
17.96.20.GridLayout Fill BothGridLayout Fill Both
17.96.21.GridLayout: HORIZONTAL ALIGN Begin FillGridLayout: HORIZONTAL ALIGN Begin Fill
17.96.22.GridLayout: insert widgets into a grid layoutGridLayout: insert widgets into a grid layout
17.96.23.GridLayout snippet: align widgets in a GridLayoutGridLayout snippet: align widgets in a GridLayout
17.96.24.Exclude a widget from a GridLayoutExclude a widget from a GridLayout