Draw2D_Example.java Source code

Java tutorial

Introduction

Here is the source code for Draw2D_Example.java

Source

/*
SWT/JFace in Action
GUI Design with Eclipse 3.0
Matthew Scarpino, Stephen Holder, Stanford Ng, and Laurent Mihalkovic
    
ISBN: 1932394273
    
Publisher: Manning
*/

import org.eclipse.draw2d.ButtonGroup;
import org.eclipse.draw2d.ButtonModel;
import org.eclipse.draw2d.ChangeEvent;
import org.eclipse.draw2d.ChangeListener;
import org.eclipse.draw2d.CheckBox;
import org.eclipse.draw2d.Clickable;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.LightweightSystem;
import org.eclipse.draw2d.ToggleModel;
import org.eclipse.draw2d.XYLayout;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Draw2D_Example {
    public static void main(String args[]) {
        final Label label = new Label("Press a button!");
        Shell shell = new Shell();

        LightweightSystem lws = new LightweightSystem(shell);
        Figure parent = new Figure();
        parent.setLayoutManager(new XYLayout());
        lws.setContents(parent);

        Clickable above = new CheckBox("I'm above!");
        parent.add(above, new Rectangle(10, 10, 80, 20));
        ButtonModel aModel = new ToggleModel();
        aModel.addChangeListener(new ChangeListener() {
            public void handleStateChanged(ChangeEvent e) {
                label.setText("Above");
            }
        });
        above.setModel(aModel);

        Clickable below = new CheckBox("I'm below!");
        parent.add(below, new Rectangle(10, 40, 80, 20));
        ButtonModel bModel = new ToggleModel();
        bModel.addChangeListener(new ChangeListener() {
            public void handleStateChanged(ChangeEvent e) {
                label.setText("Below");
            }
        });
        below.setModel(bModel);

        ButtonGroup bGroup = new ButtonGroup();
        bGroup.add(aModel);
        bGroup.add(bModel);
        bGroup.setDefault(bModel);

        parent.add(label, new Rectangle(10, 70, 80, 20));
        shell.setSize(130, 120);
        shell.open();
        shell.setText("Example");
        Display display = Display.getDefault();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}