Java Swing | JComboBox with examples

01 Jun, 2022
JComboBox is a part of Java Swing package. JComboBox inherits JComponent class . JComboBox shows a popup menu that shows a list and the user can select a option from that specified list . JComboBox can be editable or read- only depending on the choice of the programmer .Constructor of the JComboBox are:  
JComboBox() : creates a new empty JComboBox .JComboBox(ComboBoxModel M) : creates a new JComboBox with items from specified ComboBoxModelJComboBox(E [ ] i) : creates a new JComboBox with items from specified array.JComboBox(Vector items) : creates a new JComboBox with items from the specified vector
JComboBox() : creates a new empty JComboBox .
JComboBox(ComboBoxModel M) : creates a new JComboBox with items from specified ComboBoxModel
JComboBox(E [ ] i) : creates a new JComboBox with items from specified array.
JComboBox(Vector items) : creates a new JComboBox with items from the specified vector
Commonly used Methods are :  
addItem(E item) : adds the item to the JComboBoxaddItemListener( ItemListener l) : adds a ItemListener to JComboBoxgetItemAt(int i) : returns the item at index igetItemCount(): returns the number of items from the listgetSelectedItem() : returns the item which is selectedremoveItemAt(int i) : removes the element at index isetEditable(boolean b) : the boolean b determines whether the combo box is editable or not .If true is passed then the combo box is editable or vice versa.setSelectedIndex(int i): selects the element of JComboBox at index i.showPopup() :causes the combo box to display its popup window.setUI(ComboBoxUI ui): sets the L&F object that renders this component.setSelectedItem(Object a): sets the selected item in the combo box display area to the object in the argument.setSelectedIndex(int a): selects the item at index anIndex.setPopupVisible(boolean v): sets the visibility of the popup.setModel(ComboBoxModel a) : sets the data model that the JComboBox uses to obtain the list of items.setMaximumRowCount(int count): sets the maximum number of rows the JComboBox displays.setEnabled(boolean b): enables the combo box so that items can be selected.removeItem(Object anObject) : removes an item from the item list.removeAllItems(): removes all items from the item list.removeActionListener(ActionListener l): removes an ActionListener.isPopupVisible() : determines the visibility of the popup.addPopupMenuListener(PopupMenuListener l) : adds a PopupMenu listener which will listen to notification messages from the popup portion of the combo box.getActionCommand() : returns the action command that is included in the event sent to action listeners.getEditor(): returns the editor used to paint and edit the selected item in the JComboBox field.getItemCount() : returns the number of items in the list.getItemListeners(): returns an array of all the ItemListeners added to this JComboBox with addItemListener().createDefaultKeySelectionManager() : returns an instance of the default key-selection manager.fireItemStateChanged(ItemEvent e) : notifies all listeners that have registered interest for notification on this event type.firePopupMenuCanceled() : notifies PopupMenuListeners that the popup portion of the combo box has been canceled.firePopupMenuWillBecomeInvisible() : notifies PopupMenuListeners that the popup portion of the combo box has become invisible.firePopupMenuWillBecomeVisible() : notifies PopupMenuListeners that the popup portion of the combo box will become visible.setEditor(ComboBoxEditor a): sets the editor used to paint and edit the selected item in the JComboBox field.setActionCommand(String a) : sets the action command that should be included in the event sent to actionListeners.getUI() : returns the look and feel object that renders this component.paramString() : returns a string representation of this JComboBox.getUIClassID() : returns the name of the Look and feel class that renders this component.getAccessibleContext() : gets the AccessibleContext associated with this JComboBox
addItem(E item) : adds the item to the JComboBox
addItemListener( ItemListener l) : adds a ItemListener to JComboBox
getItemAt(int i) : returns the item at index i
getItemCount(): returns the number of items from the list
getSelectedItem() : returns the item which is selected
removeItemAt(int i) : removes the element at index i
setEditable(boolean b) : the boolean b determines whether the combo box is editable or not .If true is passed then the combo box is editable or vice versa.
setSelectedIndex(int i): selects the element of JComboBox at index i.
showPopup() :causes the combo box to display its popup window.
setUI(ComboBoxUI ui): sets the L&F object that renders this component.
setSelectedItem(Object a): sets the selected item in the combo box display area to the object in the argument.
setSelectedIndex(int a): selects the item at index anIndex.
setPopupVisible(boolean v): sets the visibility of the popup.
setModel(ComboBoxModel a) : sets the data model that the JComboBox uses to obtain the list of items.
setMaximumRowCount(int count): sets the maximum number of rows the JComboBox displays.
setEnabled(boolean b): enables the combo box so that items can be selected.
removeItem(Object anObject) : removes an item from the item list.
removeAllItems(): removes all items from the item list.
removeActionListener(ActionListener l): removes an ActionListener.
isPopupVisible() : determines the visibility of the popup.
addPopupMenuListener(PopupMenuListener l) : adds a PopupMenu listener which will listen to notification messages from the popup portion of the combo box.
getActionCommand() : returns the action command that is included in the event sent to action listeners.
getEditor(): returns the editor used to paint and edit the selected item in the JComboBox field.
getItemCount() : returns the number of items in the list.
getItemListeners(): returns an array of all the ItemListeners added to this JComboBox with addItemListener().
createDefaultKeySelectionManager() : returns an instance of the default key-selection manager.
fireItemStateChanged(ItemEvent e) : notifies all listeners that have registered interest for notification on this event type.
firePopupMenuCanceled() : notifies PopupMenuListeners that the popup portion of the combo box has been canceled.
firePopupMenuWillBecomeInvisible() : notifies PopupMenuListeners that the popup portion of the combo box has become invisible.
firePopupMenuWillBecomeVisible() : notifies PopupMenuListeners that the popup portion of the combo box will become visible.
setEditor(ComboBoxEditor a): sets the editor used to paint and edit the selected item in the JComboBox field.
setActionCommand(String a) : sets the action command that should be included in the event sent to actionListeners.
getUI() : returns the look and feel object that renders this component.
paramString() : returns a string representation of this JComboBox.
getUIClassID() : returns the name of the Look and feel class that renders this component.
getAccessibleContext() : gets the AccessibleContext associated with this JComboBox
The following programs will illustrate the use of JComboBox1. Program to create a simple JComboBox and add elements to it .  
Java
// Java Program to create a simple JComboBox// and add elements to itimport java.awt.event.*;import java.awt.*;import javax.swing.*;class solve extends JFrame implements ItemListener {     // frame    static JFrame f;     // label    static JLabel l, l1;     // combobox    static JComboBox c1;     // main class    public static void main(String[] args)    {        // create a new frame        f = new JFrame("frame");         // create a object        solve s = new solve();         // set layout of frame        f.setLayout(new FlowLayout());         // array of string containing cities        String s1[] = { "Jalpaiguri", "Mumbai", "Noida", "Kolkata", "New Delhi" };         // create checkbox        c1 = new JComboBox(s1);         // add ItemListener        c1.addItemListener(s);         // create labels        l = new JLabel("select your city ");        l1 = new JLabel("Jalpaiguri selected");         // set color of text        l.setForeground(Color.red);        l1.setForeground(Color.blue);         // create a new panel        JPanel p = new JPanel();         p.add(l);         // add combobox to panel        p.add(c1);         p.add(l1);         // add panel to frame        f.add(p);         // set the size of frame        f.setSize(400, 300);         f.show();    }    public void itemStateChanged(ItemEvent e)    {        // if the state combobox is changed        if (e.getSource() == c1) {             l1.setText(c1.getSelectedItem() + " selected");        }    }}
Output :  
 
2. Program to create two checkbox one editable and other read only  
Java
// Java Program to create two  checkbox// one editable and other read onlyimport java.awt.event.*;import java.awt.*;import javax.swing.*;class solve extends JFrame implements ItemListener {     // frame    static JFrame f;     // label    static JLabel l, l1, l3, l4;     // combobox    static JComboBox c1, c2;     // main class    public static void main(String[] args)    {        // create a new frame        f = new JFrame("frame");         // create a object        solve s = new solve();         // array of string containing cities        String s1[] = { "Jalpaiguri", "Mumbai", "Noida", "Kolkata", "New Delhi" };        String s2[] = { "male", "female", "others" };         // create checkbox        c1 = new JComboBox(s1);        c2 = new JComboBox(s2);         // set Kolkata and male as selected items        // using setSelectedIndex        c1.setSelectedIndex(3);        c2.setSelectedIndex(0);         // add ItemListener        c1.addItemListener(s);        c2.addItemListener(s);         // set the checkbox as editable        c1.setEditable(true);         // create labels        l = new JLabel("select your city ");        l1 = new JLabel("Jalpaiguri selected");        l3 = new JLabel("select your gender ");        l4 = new JLabel("Male selected");         // set color of text        l.setForeground(Color.red);        l1.setForeground(Color.blue);        l3.setForeground(Color.red);        l4.setForeground(Color.blue);         // create a new panel        JPanel p = new JPanel();         p.add(l);         // add combobox to panel        p.add(c1);         p.add(l1);         p.add(l3);         // add combobox to panel        p.add(c2);         p.add(l4);         // set a layout for panel        p.setLayout(new FlowLayout());         // add panel to frame        f.add(p);         // set the size of frame        f.setSize(400, 400);         f.show();    }    public void itemStateChanged(ItemEvent e)    {        // if the state combobox 1is changed        if (e.getSource() == c1) {             l1.setText(c1.getSelectedItem() + " selected");        }         // if state of combobox 2 is changed        else            l4.setText(c2.getSelectedItem() + " selected");    }}
Output :  
 
3. Program to create a checkbox and add or remove items from it .  
Java
// Java  Program to create a checkbox// and add or remove items from itimport java.awt.event.*;import java.awt.*;import javax.swing.*;class solve11 extends JFrame implements ItemListener, ActionListener {     // frame    static JFrame f;     // label    static JLabel l, l1;     // combobox    static JComboBox c1;     // textfield to add and delete items    static JTextField tf;     // main class    public static void main(String[] args)    {        // create a new frame        f = new JFrame("frame");         // create a object        solve11 s = new solve11();         // set layout of frame        f.setLayout(new FlowLayout());         // array of string containing cities        String s1[] = { "Jalpaiguri", "Mumbai", "Noida", "Kolkata", "New Delhi" };         // create checkbox        c1 = new JComboBox(s1);         // create textfield        tf = new JTextField(16);         // create add and remove buttons        JButton b = new JButton("ADD");        JButton b1 = new JButton("REMOVE");         // add action listener        b.addActionListener(s);        b1.addActionListener(s);         // add ItemListener        c1.addItemListener(s);         // create labels        l = new JLabel("select your city ");        l1 = new JLabel("Jalpaiguri selected");         // set color of text        l.setForeground(Color.red);        l1.setForeground(Color.blue);         // create a new panel        JPanel p = new JPanel();         p.add(l);         // add combobox to panel        p.add(c1);         p.add(l1);        p.add(tf);        p.add(b);        p.add(b1);         f.setLayout(new FlowLayout());         // add panel to frame        f.add(p);         // set the size of frame        f.setSize(700, 200);         f.show();    }    // if button is pressed    public void actionPerformed(ActionEvent e)    {        String s = e.getActionCommand();        if (s.equals("ADD")) {            c1.addItem(tf.getText());        }        else {            c1.removeItem(tf.getText());        }    }     public void itemStateChanged(ItemEvent e)    {        // if the state combobox is changed        if (e.getSource() == c1) {             l1.setText(c1.getSelectedItem() + " selected");        }    }}
Output :  
 
Note : the above programs might not run in an online compiler please use an offline IDE 
sweetyty
surinderdawra388
java-swing
Java
Programming Language
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
How to iterate any Map in Java
Interfaces in Java
HashMap in Java with Examples
ArrayList in Java
Differences between Procedural and Object Oriented Programming
Arrow operator -> in C/C++ with Examples
Modulo Operator (%) in C/C++ with Examples
Structures in C++
Decorators with parameters in Python