Java Swing | JComboBox with examples

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 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 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 JComboBox
1. 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
 
				
					



