ShowMessageBox.java Source code

Java tutorial

Introduction

Here is the source code for ShowMessageBox.java

Source

//Send questions, comments, bug reports, etc. to the authors:

//Rob Warner (rwarner@interspatial.com)
//Robert Harris (rbrt_harris@yahoo.com)

import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

/**
 * This class demonstrates the MessageBox class
 */
public class ShowMessageBox {
    // Strings to show in the Icon dropdown
    private static final String[] ICONS = { "SWT.ICON_ERROR", "SWT.ICON_INFORMATION", "SWT.ICON_QUESTION",
            "SWT.ICON_WARNING", "SWT.ICON_WORKING" };

    // Strings to show in the Buttons dropdown
    private static final String[] BUTTONS = { "SWT.OK", "SWT.OK | SWT.CANCEL", "SWT.YES | SWT.NO",
            "SWT.YES | SWT.NO | SWT.CANCEL", "SWT.RETRY | SWT.CANCEL", "SWT.ABORT | SWT.RETRY | SWT.IGNORE" };

    /**
     * Runs the application
     */
    public void run() {
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setText("Show Message Box");
        createContents(shell);
        shell.pack();
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }

    /**
     * Creates the main window's contents
     * 
     * @param shell the parent shell
     */
    private void createContents(final Shell shell) {
        shell.setLayout(new GridLayout(2, false));

        // Create the dropdown to allow icon selection
        new Label(shell, SWT.NONE).setText("Icon:");
        final Combo icons = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
        for (int i = 0, n = ICONS.length; i < n; i++)
            icons.add(ICONS[i]);
        icons.select(0);

        // Create the dropdown to allow button selection
        new Label(shell, SWT.NONE).setText("Buttons:");
        final Combo buttons = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
        for (int i = 0, n = BUTTONS.length; i < n; i++)
            buttons.add(BUTTONS[i]);
        buttons.select(0);

        // Create the entry field for the message
        new Label(shell, SWT.NONE).setText("Message:");
        final Text message = new Text(shell, SWT.BORDER);
        message.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        // Create the label to show the return from the open call
        new Label(shell, SWT.NONE).setText("Return:");
        final Label returnVal = new Label(shell, SWT.NONE);
        returnVal.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        // Create the button and event handler
        // to display the message box
        Button button = new Button(shell, SWT.PUSH);
        button.setText("Show Message");
        button.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                // Clear any previously returned value
                returnVal.setText("");

                // This will hold the style to pass to the MessageBox constructor
                int style = 0;

                // Determine which icon was selected and
                // add it to the style
                switch (icons.getSelectionIndex()) {
                case 0:
                    style |= SWT.ICON_ERROR;
                    break;
                case 1:
                    style |= SWT.ICON_INFORMATION;
                    break;
                case 2:
                    style |= SWT.ICON_QUESTION;
                    break;
                case 3:
                    style |= SWT.ICON_WARNING;
                    break;
                case 4:
                    style |= SWT.ICON_WORKING;
                    break;
                }

                // Determine which set of buttons was selected
                // and add it to the style
                switch (buttons.getSelectionIndex()) {
                case 0:
                    style |= SWT.OK;
                    break;
                case 1:
                    style |= SWT.OK | SWT.CANCEL;
                    break;
                case 2:
                    style |= SWT.YES | SWT.NO;
                    break;
                case 3:
                    style |= SWT.YES | SWT.NO | SWT.CANCEL;
                    break;
                case 4:
                    style |= SWT.RETRY | SWT.CANCEL;
                    break;
                case 5:
                    style |= SWT.ABORT | SWT.RETRY | SWT.IGNORE;
                    break;
                }

                // Display the message box
                MessageBox mb = new MessageBox(shell, style);
                mb.setText("Message from SWT");
                mb.setMessage(message.getText());
                int val = mb.open();
                String valString = "";
                switch (val) // val contains the constant of the selected button
                {
                case SWT.OK:
                    valString = "SWT.OK";
                    break;
                case SWT.CANCEL:
                    valString = "SWT.CANCEL";
                    break;
                case SWT.YES:
                    valString = "SWT.YES";
                    break;
                case SWT.NO:
                    valString = "SWT.NO";
                    break;
                case SWT.RETRY:
                    valString = "SWT.RETRY";
                    break;
                case SWT.ABORT:
                    valString = "SWT.ABORT";
                    break;
                case SWT.IGNORE:
                    valString = "SWT.IGNORE";
                    break;
                }
                returnVal.setText(valString);
            }
        });
    }

    /**
     * Application entry point
     * 
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new ShowMessageBox().run();
    }
}