Java Reference
In-Depth Information
7
import
java.awt.event.ActionEvent;
8
import
javax.swing.JFrame;
9
import
javax.swing.JRadioButtonMenuItem;
10
import
javax.swing.JPopupMenu;
11
import
javax.swing.ButtonGroup;
12
13
public
class
PopupFrame
extends
JFrame
14
{
15
private final
JRadioButtonMenuItem[] items;
// holds items for colors
16
private
final
Color[] colorValues =
17
{
Color.BLUE
,
Color.YELLOW
,
Color.RED
};
// colors to be used
18
private final
JPopupMenu popupMenu;
// allows user to select color
19
20
// no-argument constructor sets up GUI
21
public
PopupFrame()
22
{
23
super
(
"Using JPopupMenus"
);
24
25
ItemHandler handler =
new
ItemHandler();
// handler for menu items
26
String[] colors = {
"Blue"
,
"Yellow"
,
"Red"
};
27
28
ButtonGroup colorGroup =
new
ButtonGroup();
// manages color items
29
popupMenu =
new
JPopupMenu();
// create pop-up menu
30
items =
new
JRadioButtonMenuItem[colors.length];
31
32
// construct menu item, add to pop-up menu, enable event handling
33
for
(
int
count =
0
; count < items.length; count++)
34
{
35
items[count] =
new
JRadioButtonMenuItem(colors[count]);
36
popupMenu.add(items[count]);
// add item to pop-up menu
37
colorGroup.add(items[count]);
// add item to button group
38
items[count].addActionListener(handler);
// add handler
39
}
40
41
setBackground(
Color.WHITE
);
42
43
// declare a MouseListener for the window to display pop-up menu
44
addMouseListener(
45
new
MouseAdapter()
// anonymous inner class
46
{
47
// handle mouse press event
48
@Override
49
public
void
mousePressed(MouseEvent event)
50
{
51
checkForTriggerEvent(event);
52
}
53
54
// handle mouse release event
55
@Override
56
public
void
mouseReleased(MouseEvent event)
57
{
58
checkForTriggerEvent(event);
59
}
Fig. 22.7
|
JPopupMenu
for selecting colors. (Part 2 of 3.)