As a group of radio buttons, a drop-down list is a form of forcing the user to select only one element of a group of possibilities. However, it is a more compact way to do this, and is easier to change the elements of the list without surprising the user.
The JComboBox component, similar to Choice component in AWT, is a combination of textfield and drop down list of items. User can make selection by clicking at an item from the list or by typing into the box. It can be created by instantiating the JCombobox class.
The Java JComboBox box is not like Windows, which lets you select from a list or type your own selection. With a box JComboBox is choose one and only one element of the list.
JComboBox methods
Method | Purpose |
void addItem(object) | Adds an item to the list |
void removeItem(object) | Removes an item from the list |
void removeAllItems() | Removes all items from the list |
object getItemAt(int) | Returns the list item at the index position specified by the integer argument |
int getItemCount() | Returns the number of items in the list |
int getMaximumRowCount() | Returns the maximum number of items the combo box can display without a scroll bar |
int getSelectedIndex() | Returns the position of the currently selected item |
object getSelectedItem() | Returns the currently selected item |
object[] getSelectedobjects() | Returns an array containing selected objects |
void setEditable(boolean) | Sets the field to be editable or not editable |
void setMaximumRowCount(int) | Sets the number of rows in the combo box that can display at one time |
void setSelectedIndex(int) | Selects the index at the position indicated by the argument |
void setSelectedItem(object) | Sets the selected item in the combo box display area to be the object argument |
In the following example, the JComboBox box starts with a number of inputs and then new entries are added when a button is pressed.
import javax.swing.*;
import java.awt.*;
class ComboBoxExample extends JFrame
{
ComboBoxExample()
{
setLayout(new FlowLayout());
String[] month = {"Jan","feb","mar","Apr","May","Jun","Jul","Aug","sep","oct","Nov","Dec"};
JLabel lblDay = new JLabel("Day");
JLabel lblMonth = new JLabel("Month");
JLabel lblYear = new JLabel("Year");
JComboBox cboDay = new JComboBox();
JComboBox cboMonth = new JComboBox(month);
JComboBox cboyear = new JComboBox();
for(int i=1;i<=31;i++)
cboDay.addItem(i);
for(int i=2009;i>1970;i--)
add(lblDay); add(cboDay);
add(lblMonth); add(cboMonth);
add(lblYear); add(cboyear);
}
}
class JComboBoxJavaExample
{
public static void main(String args[])
{
ComboBoxExample frame = new ComboBoxExample();
frame.setTitle("ComboBox Java Example");
frame.setBounds(200,250,350,50);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}