Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีทำเมนูคลิกขวา (Right-click Menu) ด้วย JPopupMenu ใน Java

JPopupMenu ปรากฏที่จุดใดก็ได้บนหน้าจอเมื่อ คลิกปุ่มเมาส์ขวา

JPopupMenu

  • Popup Menu เป็นเมนูลอยอิสระ เชื่อมโยงกับคอมโพเนนต์ต้นทางที่เรียกว่า Invoker
  • มักเชื่อมโยงกับคอมโพเนนต์เฉพาะเพื่อแสดงตัวเลือกตามบริบท (Context-sensitive)
  • สร้าง Popup Menu ด้วยคลาส JPopupMenu เพิ่ม JMenuItem เข้าไปได้เหมือนเมนูทั่วไป
  • แสดง Popup Menu ด้วยเมธอด show() เรียกตอบสนองต่อ Mouse Event

ตัวอย่างโค้ด

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class JPopupMenuTest extends JFrame {
    private JPopupMenu popup;

    public JPopupMenuTest() {
        setTitle("JPopupMenu Test");
        Container contentPane = getContentPane();
        popup = new JPopupMenu();
        // เพิ่มเมนูไอเท็มใน popup
        popup.add(new JMenuItem("Cut"));
        popup.add(new JMenuItem("Copy"));
        popup.add(new JMenuItem("Paste"));
        popup.addSeparator();
        popup.add(new JMenuItem("SelectAll"));
        contentPane.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent me) {
                showPopup(me); // showPopup() เป็นเมธอดที่กำหนดเอง
            }
        });
        setSize(375, 250);
        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 JPopupMenuTest();
    }
}

ผลลัพธ์

วิธีทำเมนูคลิกขวา (Right-click Menu) ด้วย JPopupMenu ใน Java