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.)
Search WWH ::




Custom Search