Listening for Action Events from a JComboBox Component

Action events are generated whenever the selected item changes. These events are generated even while the user is moving through items in the displayed popup menu. Unlike item events (see Listening for Changes to the Selected Item in a JComboBox Component), action events are generated even if the new item is the same as the old item.
// Create component String[] items = {"item1", "item2"}; JComboBox cb = new JComboBox(items); cb.setEditable(true); // Create and register listener MyActionListener actionListener = new MyActionListener(); cb.addActionListener(actionListener); class MyActionListener implements ActionListener { // Retain the previously selected item in order to determine whether // the new item is the same Object oldItem; // This method is called whenever the user or program changes the selected item. // Note: The new item may be the same as the previous item. public void actionPerformed(ActionEvent evt) { JComboBox cb = (JComboBox)evt.getSource(); // Get the new item Object newItem = cb.getSelectedItem(); // Determine if different from previously selected item boolean same = newItem.equals(oldItem); oldItem = newItem; if ("comboBoxEdited".equals(evt.getActionCommand())) { // User has typed in a string; only possible with an editable combobox } else if ("comboBoxChanged".equals(evt.getActionCommand())) { // User has selected an item; it may be the same item } } }

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.