public class NestedMenus extends JFrame implements ActionListener
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: }