Creating a Complete Menu System

Creating a complete menu system is a matter of duplicating the code seen in Example 3-2 for each high-level menu item that appears on the menu bar.

How do I do that?

Example 3-3 creates a menu bar with File, Edit, Window, and Help cascading menus. Each cascading menu drops down to display menu items appropriate to the top-level menu.

Example 3-3. A complete menu system

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.*;

public class MenuShell {
    Display d;
    Shell s;
     MenuShell( )    {
         d = new Display( );
         s = new Shell(d);
        s.setSize(300,300);
        s.setImage(new Image(d, "c:\\icons\\JavaCup.ico"));
        s.setText("A Shell Menu Example");

        Menu m = new Menu(s,SWT.BAR );
                  
         // create a File menu and add an Exit item
         final MenuItem file = new MenuItem(m, SWT.CASCADE);
         file.setText("File");
         final Menu filemenu = new Menu(s, SWT.DROP_DOWN);
         file.setMenu(filemenu);
         final MenuItem openItem = new MenuItem(filemenu, SWT.PUSH);
         openItem.setText("Open");
         final MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR);
         final MenuItem exitItem = new MenuItem(filemenu, SWT.PUSH);
         exitItem.setText("Exit");
         
         // create an Edit menu and add Cut, Copy, and Paste items
         final MenuItem edit = new MenuItem(m, SWT.CASCADE);
         edit.setText("Edit");
         final Menu editmenu = new Menu(s, SWT.DROP_DOWN);
         edit.setMenu(editmenu);
         final MenuItem cutItem = new MenuItem(editmenu, SWT.PUSH);
         cutItem.setText("Cut");
         final MenuItem copyItem = new MenuItem(editmenu, ...

Get SWT: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.