Source of NestedMenus.java


  1: import javax.swing.JFrame;
  2: import javax.swing.JMenu;
  3: import javax.swing.JMenuBar;
  4: import javax.swing.JMenuItem;
  5: import javax.swing.JPanel;
  6: import javax.swing.JTextArea;
  7: import java.awt.Color;
  8: import java.awt.Container;
  9: import java.awt.BorderLayout;
 10: import java.awt.event.ActionEvent;
 11: import java.awt.event.ActionListener;
 12: 
 13: public class NestedMenus extends JFrame implements ActionListener
 14: {
 15:     public static final int WIDTH = 600;
 16:     public static final int HEIGHT = 300;
 17:     public static final int LINES = 10;
 18:     public static final int CHAR_PER_LINE = 40;
 19: 
 20:     private JTextArea theText;
 21:     private String memo1 = "No Memo 1.";
 22:     private String memo2 = "No Memo 2.";
 23: 
 24:     public NestedMenus()
 25:     {
 26:         setSize(WIDTH, HEIGHT);
 27:         addWindowListener(new WindowDestroyer());
 28:         setTitle("Memo Saver");
 29:         Container contentPane = getContentPane();
 30:         contentPane.setLayout(new BorderLayout());
 31: 
 32:         JMenu memoMenu = new JMenu("Memos");
 33:         JMenuItem m;
 34: 
 35:         JMenu saveMenu = new JMenu("Save");
 36: 
 37:         m = new JMenuItem("Save Memo 1");
 38:         m.addActionListener(this);
 39:         saveMenu.add(m);
 40: 
 41:         m = new JMenuItem("Save Memo 2");
 42:         m.addActionListener(this);
 43:         saveMenu.add(m);
 44: 
 45:         memoMenu.add(saveMenu);
 46: 
 47:         JMenu getMenu = new JMenu("Get");
 48: 
 49:         m = new JMenuItem("Get Memo 1");
 50:         m.addActionListener(this);
 51:         getMenu.add(m);
 52: 
 53:         m = new JMenuItem("Get Memo 2");
 54:         m.addActionListener(this);
 55:         getMenu.add(m);
 56: 
 57:         memoMenu.add(getMenu);
 58: 
 59:         m = new JMenuItem("Clear");
 60:         m.addActionListener(this);
 61:         memoMenu.add(m);
 62: 
 63:         m = new JMenuItem("Exit");
 64:         m.addActionListener(this);
 65:         memoMenu.add(m);
 66: 
 67:         JMenuBar mBar = new JMenuBar();
 68:         mBar.add(memoMenu);
 69:         setJMenuBar(mBar);
 70: 
 71:         JPanel textPanel = new JPanel();
 72:         textPanel.setBackground(Color.BLUE);
 73:         theText = new JTextArea(LINES, CHAR_PER_LINE);
 74:         theText.setBackground(Color.WHITE);
 75:         textPanel.add(theText);
 76:         contentPane.add(textPanel, BorderLayout.CENTER);
 77:     }
 78: 
 79:     public void actionPerformed(ActionEvent e)
 80:     {
 81:         String actionCommand = e.getActionCommand();
 82:         if (actionCommand.equals("Save Memo 1"))
 83:             memo1 = theText.getText();
 84:         else if (actionCommand.equals("Save Memo 2"))
 85:             memo2 = theText.getText();
 86:         else if (actionCommand.equals("Clear"))
 87:             theText.setText("");
 88:         else if (actionCommand.equals("Get Memo 1"))
 89:             theText.setText(memo1);
 90:         else if (actionCommand.equals("Get Memo 2"))
 91:             theText.setText(memo2);
 92:         else if (actionCommand.equals("Exit"))
 93:             System.exit(0);
 94:         else
 95:             theText.setText("Error in memo interface");
 96:     }
 97: 
 98:     public static void main(String[] args)
 99:     {
100:         NestedMenus gui = new NestedMenus();
101:         gui.setVisible(true);
102:     }
103: }