📄 新建 文本文档.txt
字号:
1 // Fig. 13.11: PopupTest.java
2 // Demonstrating JPopupMenus
3
4 // Java core packages
5 import java.awt.*;
6 import java.awt.event.*;
7
8 // Java extension packages
9 import javax.swing.*;
10
11 public class PopupTest extends JFrame {
12
13 private JRadioButtonMenuItem items[];
14 private Color colorValues[] =
15 { Color.blue, Color.yellow, Color.red };
16
17 private JPopupMenu popupMenu;
18
19 // set up GUI
20 public PopupTest()
21 {
22 super( "Using JPopupMenus" );
23
24 ItemHandler handler = new ItemHandler();
25 String colors[] = { "Blue", "Yellow", "Red" };
26
27 // set up popup menu and its items
28 ButtonGroup colorGroup = new ButtonGroup();
29 popupMenu = new JPopupMenu();
30 items = new JRadioButtonMenuItem[ 3 ];
31
32 // construct each menu item and add to popup menu; also
33 // enable event handling for each menu item
34 for ( int count = 0; count < items.length; count++ ) {
35 items[ count ] =
36 new JRadioButtonMenuItem( colors[ count ] );
37
38 popupMenu.add( items[ count ] );
39 colorGroup.add( items[ count ] );
40
41 items[ count ].addActionListener( handler );
42 }
43
44 getContentPane().setBackground( Color.white );
45
46 // define a MouseListener for the window that displays
47 // a JPopupMenu when the popup trigger event occurs
48 addMouseListener(
49
50 // anonymous inner class to handle mouse events
51 new MouseAdapter() {
52
53 // handle mouse press event
54 public void mousePressed( MouseEvent event )
55 {
56 checkForTriggerEvent( event );
57 }
58
59 // handle mouse release event
60 public void mouseReleased( MouseEvent event )
61 {
62 checkForTriggerEvent( event );
63 }
64
65 // determine whether event should trigger popup menu
66 private void checkForTriggerEvent( MouseEvent event )
67 {
68 if ( event.isPopupTrigger() )
69 popupMenu.show( event.getComponent(),
70 event.getX(), event.getY() );
71 }
72
73 } // end anonymous inner clas
74
75 ); // end call to addMouseListener
76
77 setSize( 300, 200 );
78 setVisible( true );
79 }
80
81 // execute application
82 public static void main( String args[] )
83 {
84 PopupTest application = new PopupTest();
85
86 application.setDefaultCloseOperation(
87 JFrame.EXIT_ON_CLOSE );
88 }
89
90 // private inner class to handle menu item events
91 private class ItemHandler implements ActionListener {
92
93 // process menu item selections
94 public void actionPerformed( ActionEvent event )
95 {
96 // determine which menu item was selected
97 for ( int i = 0; i < items.length; i++ )
98 if ( event.getSource() == items[ i ] ) {
99 getContentPane().setBackground(
100 colorValues[ i ] );
101 repaint();
102 return;
103 }
104 }
105
106 } // end private inner class ItemHandler
107
108 } // end class PopupTest
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -