samer@1
|
1 import java.awt.*;
|
samer@1
|
2 import java.awt.event.*;
|
samer@1
|
3 import javax.swing.JMenu;
|
samer@1
|
4 import javax.swing.JMenuItem;
|
samer@1
|
5 import javax.swing.JCheckBoxMenuItem;
|
samer@1
|
6 import javax.swing.JRadioButtonMenuItem;
|
samer@1
|
7 import javax.swing.ButtonGroup;
|
samer@1
|
8 import javax.swing.JMenuBar;
|
samer@1
|
9 import javax.swing.KeyStroke;
|
samer@1
|
10 import javax.swing.ImageIcon;
|
samer@1
|
11
|
samer@1
|
12 import javax.swing.JTextArea;
|
samer@1
|
13 import javax.swing.JScrollPane;
|
samer@1
|
14 import javax.swing.JFrame;
|
samer@1
|
15
|
samer@1
|
16 /*
|
samer@1
|
17 * This class exists solely to show you what menus look like.
|
samer@1
|
18 * It has no menu-related event handling.
|
samer@1
|
19 */
|
samer@1
|
20 public class MenuLookDemo extends JFrame {
|
samer@1
|
21 JTextArea output;
|
samer@1
|
22 JScrollPane scrollPane;
|
samer@1
|
23
|
samer@1
|
24 public MenuLookDemo() {
|
samer@1
|
25 JMenuBar menuBar;
|
samer@1
|
26 JMenu menu, submenu;
|
samer@1
|
27 JMenuItem menuItem;
|
samer@1
|
28 JCheckBoxMenuItem cbMenuItem;
|
samer@1
|
29 JRadioButtonMenuItem rbMenuItem;
|
samer@1
|
30
|
samer@1
|
31 addWindowListener(new WindowAdapter() {
|
samer@1
|
32 public void windowClosing(WindowEvent e) {
|
samer@1
|
33 System.exit(0);
|
samer@1
|
34 }
|
samer@1
|
35 });
|
samer@1
|
36
|
samer@1
|
37 //Add regular components to the window, using the default BorderLayout.
|
samer@1
|
38 Container contentPane = getContentPane();
|
samer@1
|
39 output = new JTextArea(5, 30);
|
samer@1
|
40 output.setEditable(false);
|
samer@1
|
41 scrollPane = new JScrollPane(output);
|
samer@1
|
42 contentPane.add(scrollPane, BorderLayout.CENTER);
|
samer@1
|
43
|
samer@1
|
44 //Create the menu bar.
|
samer@1
|
45 menuBar = new JMenuBar();
|
samer@1
|
46 setJMenuBar(menuBar);
|
samer@1
|
47
|
samer@1
|
48 //Build the first menu.
|
samer@1
|
49 menu = new JMenu("A Menu");
|
samer@1
|
50 menu.setMnemonic(KeyEvent.VK_A);
|
samer@1
|
51 menu.getAccessibleContext().setAccessibleDescription(
|
samer@1
|
52 "The only menu in this program that has menu items");
|
samer@1
|
53 menuBar.add(menu);
|
samer@1
|
54
|
samer@1
|
55 //a group of JMenuItems
|
samer@1
|
56 menuItem = new JMenuItem("A text-only menu item",
|
samer@1
|
57 KeyEvent.VK_T);
|
samer@1
|
58 //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
|
samer@1
|
59 menuItem.setAccelerator(KeyStroke.getKeyStroke(
|
samer@1
|
60 KeyEvent.VK_1, ActionEvent.ALT_MASK));
|
samer@1
|
61 menuItem.getAccessibleContext().setAccessibleDescription(
|
samer@1
|
62 "This doesn't really do anything");
|
samer@1
|
63 menu.add(menuItem);
|
samer@1
|
64
|
samer@1
|
65 menuItem = new JMenuItem("Both text and icon",
|
samer@1
|
66 new ImageIcon("images/middle.gif"));
|
samer@1
|
67 menuItem.setMnemonic(KeyEvent.VK_B);
|
samer@1
|
68 menu.add(menuItem);
|
samer@1
|
69
|
samer@1
|
70 menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
|
samer@1
|
71 menuItem.setMnemonic(KeyEvent.VK_D);
|
samer@1
|
72 menu.add(menuItem);
|
samer@1
|
73
|
samer@1
|
74 //a group of radio button menu items
|
samer@1
|
75 menu.addSeparator();
|
samer@1
|
76 ButtonGroup group = new ButtonGroup();
|
samer@1
|
77
|
samer@1
|
78 rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
|
samer@1
|
79 rbMenuItem.setSelected(true);
|
samer@1
|
80 rbMenuItem.setMnemonic(KeyEvent.VK_R);
|
samer@1
|
81 group.add(rbMenuItem);
|
samer@1
|
82 menu.add(rbMenuItem);
|
samer@1
|
83
|
samer@1
|
84 rbMenuItem = new JRadioButtonMenuItem("Another one");
|
samer@1
|
85 rbMenuItem.setMnemonic(KeyEvent.VK_O);
|
samer@1
|
86 group.add(rbMenuItem);
|
samer@1
|
87 menu.add(rbMenuItem);
|
samer@1
|
88
|
samer@1
|
89 //a group of check box menu items
|
samer@1
|
90 menu.addSeparator();
|
samer@1
|
91 cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
|
samer@1
|
92 cbMenuItem.setMnemonic(KeyEvent.VK_C);
|
samer@1
|
93 menu.add(cbMenuItem);
|
samer@1
|
94
|
samer@1
|
95 cbMenuItem = new JCheckBoxMenuItem("Another one");
|
samer@1
|
96 cbMenuItem.setMnemonic(KeyEvent.VK_H);
|
samer@1
|
97 menu.add(cbMenuItem);
|
samer@1
|
98
|
samer@1
|
99 //a submenu
|
samer@1
|
100 menu.addSeparator();
|
samer@1
|
101 submenu = new JMenu("A submenu");
|
samer@1
|
102 submenu.setMnemonic(KeyEvent.VK_S);
|
samer@1
|
103
|
samer@1
|
104 menuItem = new JMenuItem("An item in the submenu");
|
samer@1
|
105 menuItem.setAccelerator(KeyStroke.getKeyStroke(
|
samer@1
|
106 KeyEvent.VK_2, ActionEvent.ALT_MASK));
|
samer@1
|
107 submenu.add(menuItem);
|
samer@1
|
108
|
samer@1
|
109 menuItem = new JMenuItem("Another item");
|
samer@1
|
110 submenu.add(menuItem);
|
samer@1
|
111 menu.add(submenu);
|
samer@1
|
112
|
samer@1
|
113 //Build second menu in the menu bar.
|
samer@1
|
114 menu = new JMenu("Another Menu");
|
samer@1
|
115 menu.setMnemonic(KeyEvent.VK_N);
|
samer@1
|
116 menu.getAccessibleContext().setAccessibleDescription(
|
samer@1
|
117 "This menu does nothing");
|
samer@1
|
118 menuBar.add(menu);
|
samer@1
|
119 }
|
samer@1
|
120
|
samer@1
|
121 public static void main(String[] args) {
|
samer@1
|
122 MenuLookDemo window = new MenuLookDemo();
|
samer@1
|
123
|
samer@1
|
124 window.setTitle("MenuLookDemo");
|
samer@1
|
125 window.setSize(450, 260);
|
samer@1
|
126 window.setVisible(true);
|
samer@1
|
127 }
|
samer@1
|
128 }
|