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 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 contating 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 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 contating 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 Kolakata 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 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 contating 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
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.