Menus.java Source code

Java tutorial

Introduction

Here is the source code for Menus.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.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

/**
 * This class demonstrates menus
 */
public class Menus {
    private Image star;
    private Image circle;
    private Image square;
    private Image triangle;

    /**
     * Runs the application
     */
    public void run() {
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setText("Menus");
        createContents(shell);
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        if (circle != null)
            circle.dispose();
        if (star != null)
            star.dispose();
        if (square != null)
            square.dispose();
        if (triangle != null)
            triangle.dispose();
        display.dispose();
    }

    /**
     * Creates the main window's contents
     * 
     * @param shell the main window
     */
    private void createContents(Shell shell) {
        shell.setLayout(new FillLayout());
        createBarMenu(shell);
        createPopUpMenu(shell);
        createNoRadioGroupPopUpMenu(shell);
    }

    /**
     * Creates the bar menu for the main window
     * 
     * @param shell the main window
     */
    private void createBarMenu(Shell shell) {
        // Create the bar menu
        Menu menu = new Menu(shell, SWT.BAR);

        // Create all the items in the bar menu
        MenuItem fileItem = new MenuItem(menu, SWT.CASCADE);
        fileItem.setText("File");
        MenuItem editItem = new MenuItem(menu, SWT.CASCADE);
        editItem.setText("Edit");
        MenuItem formatItem = new MenuItem(menu, SWT.CASCADE);
        formatItem.setText("Format");
        MenuItem viewItem = new MenuItem(menu, SWT.CASCADE);
        viewItem.setText("View");
        MenuItem helpItem = new MenuItem(menu, SWT.CASCADE);
        helpItem.setText("Help");

        // Create the File item's dropdown menu
        Menu fileMenu = new Menu(menu);
        fileItem.setMenu(fileMenu);

        // Create all the items in the File dropdown menu
        MenuItem newItem = new MenuItem(fileMenu, SWT.NONE);
        newItem.setText("New");
        MenuItem openItem = new MenuItem(fileMenu, SWT.NONE);
        openItem.setText("Open...");
        MenuItem saveItem = new MenuItem(fileMenu, SWT.NONE);
        saveItem.setText("Save");
        MenuItem saveAsItem = new MenuItem(fileMenu, SWT.NONE);
        saveAsItem.setText("Save As...");
        new MenuItem(fileMenu, SWT.SEPARATOR);
        MenuItem pageSetupItem = new MenuItem(fileMenu, SWT.NONE);
        pageSetupItem.setText("Page Setup...");
        MenuItem printItem = new MenuItem(fileMenu, SWT.NONE);
        printItem.setText("Print...");
        new MenuItem(fileMenu, SWT.SEPARATOR);
        MenuItem exitItem = new MenuItem(fileMenu, SWT.NONE);
        exitItem.setText("Exit");

        // Set the bar menu as the menu in the shell
        shell.setMenuBar(menu);
    }

    /**
     * Creates the left-half pop-up menu
     * 
     * @param shell the main window
     */
    private void createPopUpMenu(Shell shell) {
        // Create a composite that the pop-up menu will be
        // associated with
        Label label = new Label(shell, SWT.BORDER);
        label.setText("Pop-up Menu");

        // Create the pop-up menu
        Menu menu = new Menu(label);

        // Create the images
        star = new Image(shell.getDisplay(), this.getClass().getResourceAsStream("java2s.gif"));
        circle = new Image(shell.getDisplay(), this.getClass().getResourceAsStream("java2s.gif"));
        square = new Image(shell.getDisplay(), this.getClass().getResourceAsStream("java2s.gif"));
        triangle = new Image(shell.getDisplay(), this.getClass().getResourceAsStream("java2s.gif"));

        // Create all the items in the pop-up menu
        MenuItem newItem = new MenuItem(menu, SWT.CASCADE);
        newItem.setText("New");
        newItem.setImage(star);
        MenuItem refreshItem = new MenuItem(menu, SWT.NONE);
        refreshItem.setText("Refresh");
        refreshItem.setImage(circle);
        MenuItem deleteItem = new MenuItem(menu, SWT.NONE);
        deleteItem.setText("Delete");

        new MenuItem(menu, SWT.SEPARATOR);

        // Add a check menu item and select it
        MenuItem checkItem = new MenuItem(menu, SWT.CHECK);
        checkItem.setText("Check");
        checkItem.setSelection(true);
        checkItem.setImage(square);

        // Add a push menu item
        MenuItem pushItem = new MenuItem(menu, SWT.PUSH);
        pushItem.setText("Push");

        new MenuItem(menu, SWT.SEPARATOR);

        // Create some radio items
        MenuItem item1 = new MenuItem(menu, SWT.RADIO);
        item1.setText("Radio One");
        item1.setImage(triangle);
        MenuItem item2 = new MenuItem(menu, SWT.RADIO);
        item2.setText("Radio Two");
        MenuItem item3 = new MenuItem(menu, SWT.RADIO);
        item3.setText("Radio Three");

        // Create a new radio group
        new MenuItem(menu, SWT.SEPARATOR);

        // Create some radio items
        MenuItem itema = new MenuItem(menu, SWT.RADIO);
        itema.setText("Radio A");
        MenuItem itemb = new MenuItem(menu, SWT.RADIO);
        itemb.setText("Radio B");
        MenuItem itemc = new MenuItem(menu, SWT.RADIO);
        itemc.setText("Radio C");

        // Create the New item's dropdown menu
        Menu newMenu = new Menu(menu);
        newItem.setMenu(newMenu);

        // Create the items in the New dropdown menu
        MenuItem shortcutItem = new MenuItem(newMenu, SWT.NONE);
        shortcutItem.setText("Shortcut");
        MenuItem iconItem = new MenuItem(newMenu, SWT.NONE);
        iconItem.setText("Icon");

        // Set the pop-up menu as the pop-up for the label
        label.setMenu(menu);
    }

    /**
     * Creates the No Radio Group pop-up menu
     * 
     * @param shell the main window
     */
    private void createNoRadioGroupPopUpMenu(Shell shell) {
        // Create a composite that the pop-up menu will be
        // associated with
        Label label = new Label(shell, SWT.BORDER);
        label.setText("No Radio Group Menu");

        // Create the pop-up menu with the No Radio Group style
        Menu menu = new Menu(shell, SWT.POP_UP | SWT.NO_RADIO_GROUP);
        label.setMenu(menu);

        // Create all the items in the pop-up menu
        MenuItem item1 = new MenuItem(menu, SWT.RADIO);
        item1.setText("Radio One");
        MenuItem item2 = new MenuItem(menu, SWT.RADIO);
        item2.setText("Radio Two");
        MenuItem item3 = new MenuItem(menu, SWT.RADIO);
        item3.setText("Radio Three");

        // Set the pop-up menu as the pop-up for the label
        label.setMenu(menu);
    }

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