JComboBox JComponent क्लास का सबक्लास है और यह एक टेक्स्ट फील्ड और एक ड्रॉप-डाउन लिस्ट का संयोजन है जिससे उपयोगकर्ता मान चुन सकता है। JComboBox उपयोगकर्ता द्वारा कॉम्बो बॉक्स पर क्रियाओं पर ActionListener, ChangeListener और ItemListener इंटरफेस जनरेट कर सकता है। हम DefaultListCellRenderer क्लास को एक्सटेंड करके JComboBox को रेंडर करके JComboBox के आइटम्स पर बॉर्डर सेट कर सकते हैं और getListCellRendererComponent() मेथड को ओवरराइड करने की आवश्यकता है।
सिंटैक्स
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus)
उदाहरण
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(); } }आउटपुट
