⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 弹出式菜单JPopupMenus的简单应用
💻 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 + -