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

Làm cách nào chúng ta có thể đặt đường viền cho các mục JComboBox trong Java?


A JComboBox là một lớp con của JComponent lớp và nó là sự kết hợp của t trường ext danh sách thả xuống từ đó người dùng có thể chọn một giá trị. JComboBox có thể tạo ActionListener, ChangeListener ItemListener giao diện khi người dùng thao tác trên hộp tổ hợp. Chúng tôi có thể đặt đường viền cho các mục của JComboBox bằng cách hiển thị JComboBox mở rộng DefaultListCellRenderer và cần ghi đè getListCellRendererComponent () phương pháp.

Cú pháp

public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus)

Ví dụ

import java.awt.*;
import javax.swing.*;
public class JComboBoxTest extends JFrame {
   public JComboBoxTest() {
      setTitle("JComboBox Test");
      String[] cities = {"Hyderabad", "Mumbai", "Pune", "Bangalore", "Chennai", "Coimbatore"};
      JComboBox jcb = new JComboBox(cities);
      jcb.setRenderer(new CustomComboBoxRenderer());
      add(jcb, BorderLayout.NORTH);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   class CustomComboBoxRenderer extends DefaultListCellRenderer {
      public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
         JLabel lbl = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected,  cellHasFocus);
         lbl.setBorder(BorderFactory.createEmptyBorder(7, 7, 7, 7));
         lbl.setBackground(Color.lightGray);
         return lbl;
      }
   }
   public static void main(String[] args) {
      new JComboBoxTest();
   }
}

Đầu ra

Làm cách nào chúng ta có thể đặt đường viền cho các mục JComboBox trong Java?