A JPopupMenu เป็นคลาสย่อยของ JComponent คลาสและสามารถปรากฏที่ใดก็ได้บนหน้าจอเมื่อคลิกปุ่มเมาส์ขวา ในการสร้างเมนูป๊อปอัป เราสามารถใช้ JPopupMenu ระดับ. โดยทั่วไปเราสามารถเพิ่ม รายการเมนู ไปที่ JPopupMenu และยังเพิ่ม เมนูย่อย ไปที่ JPopupMenu โดยเพิ่มรายการเมนูลงในเมนูย่อยก่อนแล้วจึงเพิ่มลงใน JPopupMenu เมนูป๊อปอัปถูกทริกเกอร์โดยเหตุการณ์ของเมาส์ ดังนั้นเราจึงจำเป็นต้องลงทะเบียน MouseListener อินเตอร์เฟซ. เราสามารถแทนที่ mouseReleased() วิธีการแสดงเมนูป๊อปอัปเมื่อเราได้รับเหตุการณ์ที่เหมาะสมโดยการเรียก isPopupTrigger() เมธอดและแสดงโดยเรียก show() เมธอดที่มีพิกัดเหตุการณ์ของเมาส์เป็นอาร์กิวเมนต์
ตัวอย่าง
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(); } }
ผลลัพธ์