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();
}
}
ผลลัพธ์
