GridLayoutGrabExcess.java Source code

Java tutorial

Introduction

Here is the source code for GridLayoutGrabExcess.java

Source

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;

public class GridLayoutGrabExcess {
    public static void main(String[] args) {
        Display display = new Display();
        final Shell shell = new Shell(display);

        GridLayout gridLayout = new GridLayout();
        gridLayout.numColumns = 2;
        gridLayout.makeColumnsEqualWidth = true;

        shell.setLayout(gridLayout);

        Button button1 = new Button(shell, SWT.PUSH);
        button1.setText("button1"); // Default alignment

        List list = new List(shell, SWT.BORDER);
        list.add("item 1");
        list.add("item 2");
        list.add("item 3");
        GridData gridData = new GridData();
        gridData.grabExcessHorizontalSpace = true;
        gridData.grabExcessVerticalSpace = true;
        gridData.horizontalAlignment = GridData.FILL;
        gridData.verticalAlignment = GridData.FILL;

        list.setLayoutData(gridData);

        Button button2 = new Button(shell, SWT.PUSH);
        button2.setText("button #2");
        GridData gridData2 = new GridData();
        gridData2.grabExcessVerticalSpace = true;
        gridData2.grabExcessHorizontalSpace = true;
        gridData2.verticalAlignment = GridData.FILL;
        gridData2.horizontalAlignment = GridData.FILL;
        button2.setLayoutData(gridData2);

        Button button3 = new Button(shell, SWT.PUSH);
        button3.setText("3");

        shell.setSize(450, 400);
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }
}