Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách hiển thị popup menu khi right-click JComboBox trong Java

JComboBox là một lớp con của JComponent hiển thị danh sách thả xuống (drop-down list) và cho người dùng tùy chọn chọn một và chỉ một mục tại một thời điểm. JComboBox có thể có thể chỉnh sửa (editable) hoặc chỉ đọc (read-only). Phương thức getSelectedItem() dùng để lấy mục được chọn hoặc nhập từ combo box. Chúng ta có thể gọi popup menu từ JComboBox khi người dùng right-click bằng cách triển khai MouseListener và ghi đè phương thức mouseReleased(). Phương thức isPopupTrigger() của MouseEvent dùng để hiển thị popup menu.

Ví dụ

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();
    }
}

Kết quả

Cách hiển thị popup menu khi right-click JComboBox trong Java