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