Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào chúng ta có thể hiển thị menu bật lên khi người dùng nhấp chuột phải vào JComboBox trong Java?

A JComboBox là một lớp con của JComponent lớp hiển thị danh sách thả xuống và cung cấp cho người dùng các tùy chọn mà chúng tôi có thể 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 hoặc chỉ đọc . A getSelectedItem () phương pháp có thể được sử dụng để lấy mục đã chọn hoặc đã nhập từ hộp tổ hợp. Chúng tôi có thể gọi một menu bật lên từ JComboxBox khi người dùng nhấp chuột phải vào nó bằng cách triển khai MouseListener và cần ghi đè mouseReleased () phương pháp. Phương thức isPopupTrigger () của MouseEvent lớp có thể được sử dụng để hiển thị menu bật lên.

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

Đầu ra

Làm cách nào chúng ta có thể hiển thị menu bật lên khi người dùng nhấp chuột phải vào JComboBox trong Java?