TabbedShellExample.java Source code

Java tutorial

Introduction

Here is the source code for TabbedShellExample.java

Source

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Text;

public class TabbedShellExample {

    Display d;

    Shell s;

    TabbedShellExample() {
        d = new Display();
        s = new Shell(d);

        s.setSize(250, 200);

        s.setText("A Tabbed Shell Example");
        s.setLayout(new FillLayout());

        TabFolder tf = new TabFolder(s, SWT.BORDER);

        TabItem ti1 = new TabItem(tf, SWT.BORDER);
        ti1.setText("Option Group");
        ti1.setControl(new GroupExample(tf, SWT.SHADOW_ETCHED_IN));

        TabItem ti2 = new TabItem(tf, SWT.BORDER);
        ti2.setText("Grid");
        ti2.setControl(new GridComposite(tf));

        TabItem ti3 = new TabItem(tf, SWT.BORDER);
        ti3.setText("Text");
        Composite c1 = new Composite(tf, SWT.BORDER);
        c1.setLayout(new FillLayout());
        Text t = new Text(c1, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
        ti3.setControl(c1);

        TabItem ti4 = new TabItem(tf, SWT.BORDER);
        ti4.setText("Settings");
        Composite c2 = new Composite(tf, SWT.BORDER);
        c2.setLayout(new RowLayout());
        Text t2 = new Text(c2, SWT.BORDER | SWT.SINGLE | SWT.WRAP | SWT.V_SCROLL);
        Button b = new Button(c2, SWT.PUSH | SWT.BORDER);
        b.setText("Save");
        ti4.setControl(c2);

        s.open();
        while (!s.isDisposed()) {
            if (!d.readAndDispatch())
                d.sleep();
        }
        d.dispose();
    }
}

class GroupExample extends Composite {

    final Button b1;

    final Button b2;

    final Button b3;

    public GroupExample(Composite c, int style) {
        super(c, SWT.NO_BACKGROUND);
        this.setSize(110, 75);
        this.setLayout(new FillLayout());
        final Group g = new Group(this, style);
        g.setSize(110, 75);
        g.setText("Options Group");
        b1 = new Button(g, SWT.RADIO);
        b1.setBounds(10, 20, 75, 15);
        b1.setText("Option One");
        b2 = new Button(g, SWT.RADIO);
        b2.setBounds(10, 35, 75, 15);
        b2.setText("Option Two");
        b3 = new Button(g, SWT.RADIO);
        b3.setBounds(10, 50, 80, 15);
        b3.setText("Option Three");
    }

    public String getSelected() {
        if (b1.getSelection())
            return "Option One";
        if (b2.getSelection())
            return "Option Two";
        if (b3.getSelection())
            return "Option Three";
        return "None Selected";
    }

}

class GridComposite extends Composite {

    public GridComposite(Composite c) {
        super(c, SWT.BORDER);
        GridLayout gl = new GridLayout();
        gl.numColumns = 3;
        this.setLayout(gl);
        final Label l1 = new Label(this, SWT.BORDER);
        l1.setText("Column One");
        final Label l2 = new Label(this, SWT.BORDER);
        l2.setText("Column Two");
        final Label l3 = new Label(this, SWT.BORDER);
        l3.setText("Column Three");
        final Text t1 = new Text(this, SWT.SINGLE | SWT.BORDER);
        final Text t2 = new Text(this, SWT.SINGLE | SWT.BORDER);
        final Text t3 = new Text(this, SWT.SINGLE | SWT.BORDER);
        final Text t4 = new Text(this, SWT.SINGLE | SWT.BORDER);
        final Text t5 = new Text(this, SWT.SINGLE | SWT.BORDER);
        final Text t6 = new Text(this, SWT.SINGLE | SWT.BORDER);

        GridData gd = new GridData();
        gd.horizontalAlignment = GridData.CENTER;
        l1.setLayoutData(gd);

        gd = new GridData();
        gd.horizontalAlignment = GridData.CENTER;
        l2.setLayoutData(gd);

        gd = new GridData();
        gd.horizontalAlignment = GridData.CENTER;
        l3.setLayoutData(gd);

        gd = new GridData(GridData.FILL_HORIZONTAL);
        t1.setLayoutData(gd);

        gd = new GridData(GridData.FILL_HORIZONTAL);
        t2.setLayoutData(gd);

        gd = new GridData(GridData.FILL_HORIZONTAL);
        t3.setLayoutData(gd);

        gd = new GridData(GridData.FILL_HORIZONTAL);
        t4.setLayoutData(gd);

        gd = new GridData(GridData.FILL_HORIZONTAL);
        t5.setLayoutData(gd);

        gd = new GridData(GridData.FILL_HORIZONTAL);
        t6.setLayoutData(gd);
    }

    public static void main(String[] argv) {
        new TabbedShellExample();
    }
}