JComboBox Selection Change Listener?

Allain Lalonde picture Allain Lalonde · Sep 12, 2008 · Viewed 335.1k times · Source

I'm trying to get an event to fire whenever a choice is made from a JComboBox.

The problem I'm having is that there is no obvious addSelectionListener() method.

I've tried to use actionPerformed(), but it never fires.

Short of overriding the model for the JComboBox, I'm out of ideas.

How do I get notified of a selection change on a JComboBox?**

Edit: I have to apologize. It turns out I was using a misbehaving subclass of JComboBox, but I'll leave the question up since your answer is good.

Answer

jodonnell picture jodonnell · Sep 12, 2008

It should respond to ActionListeners, like this:

combo.addActionListener (new ActionListener () {
    public void actionPerformed(ActionEvent e) {
        doSomething();
    }
});

@John Calsbeek rightly points out that addItemListener() will work, too. You may get 2 ItemEvents, though, one for the deselection of the previously selected item, and another for the selection of the new item. Just don't use both event types!