Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào chúng ta có thể tạo JPopupMenu với menu phụ trong Java?


A JPopupMenu là một lớp con của JComponent lớp và nó có thể xuất hiện ở bất kỳ đâu trên màn hình khi nhấp chuột phải. Để tạo menu bật lên, chúng tôi có thể sử dụng JPopupMenu lớp. Nói chung, chúng tôi có thể thêm các mục trong menu tới JPopupMenu và cũng có thể thêm một menu con tới JPopupMenu bằng cách thêm các mục menu vào menu con trước rồi thêm nó vào JPopupMenu. Trình đơn bật lên được kích hoạt bởi các sự kiện chuột, vì vậy chúng tôi cần đăng ký Trình ghi danh sách chuột giao diện. Chúng tôi có thể ghi đè mouseReleased () để hiển thị trình đơn bật lên khi chúng tôi nhận được một sự kiện thích hợp bằng cách gọi isPopupTrigger () và hiển thị nó bằng cách gọi show () của nó phương thức với tọa độ sự kiện chuột làm đối số.

Ví dụ

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();
   }
}

Đầu ra

Làm cách nào chúng ta có thể tạo JPopupMenu với menu phụ trong Java?