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

วิธีแสดง Popup Menu เมื่อ Right-click บน JComboBox ใน Java

JComboBox เป็น subclass ของ JComponent แสดง drop-down list ให้ user เลือกได้ one item at a time JComboBox เป็น editable หรือ read-only เมธอด getSelectedItem() ใช้ดึง item ที่เลือกหรือกรอกจาก combo box เราสามารถเรียก popup menu จาก JComboBox เมื่อ user right-click ได้โดย implement MouseListener interface และ override mouseReleased() เมธอด isPopupTrigger() ของ MouseEvent ใช้แสดง popup menu

ตัวอย่าง

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

public class JComboBoxPopupTest extends JFrame {
    private JComboBox jcb;
    private JPopupMenu jpm;
    private JMenuItem mItem1, mItem2;

    public JComboBoxPopupTest() {
        setTitle("JComboBoxPopup Test");
        setLayout(new FlowLayout());
        jcb = new JComboBox(new String[] {"Item 1", "Item 2", "Item 3"});
        jpm = new JPopupMenu();
        mItem1 = new JMenuItem("Popup Item 1");
        mItem2 = new JMenuItem("Popup Item 2");
        jpm.add(mItem1);
        jpm.add(mItem2);
        ((JButton) jcb.getComponent(0)).addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent me) {
                if (me.isPopupTrigger()) {
                    jpm.show(jcb, me.getX(), me.getY());
                }
            }
        });
        add(jcb);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) throws Exception {
        new JComboBoxPopupTest();
    }
}

Output

วิธีแสดง Popup Menu เมื่อ Right-click บน JComboBox ใน Java