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 it import 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 only import 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 it import 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