我们如何在Java中创建带有子菜单的JPopupMenu?

How can we create a JPopupMenu with a sub menu in Java?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class JPopupMenuwithSubMenuTest extends JFrame {
 private JPopupMenu popup;
 private JMenu subMenu;
 public JPopupMenuwithSubMenuTest() {
   setTitle("JPopupMenuwithSubMenu Test");
   popup = new JPopupMenu();
   subMenu = new JMenu("Course");
   subMenu.add("Java");
   subMenu.add("Python");
   subMenu.add("Scala");
   popup.add(new JMenuItem("First Name"));
   popup.add(new JMenuItem("Last Name"));
   popup.addSeparator();
   popup.add(subMenu);
   addMouseListener(new MouseAdapter() {
    public void mouseReleased(MouseEvent me) {
      showPopup(me);
    }
   }) ;
   setSize(400, 275);
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   setLocationRelativeTo(null);
   setVisible(true);
 }
 void showPopup(MouseEvent me) {
   if(me.isPopupTrigger())
    popup.show(me.getComponent(), me.getX(), me.getY());
 }
 public static void main(String args[]) {
   new JPopupMenuwithSubMenuTest();
 }
}

输出量