import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Toolkit; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.DefaultListModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class StatusChange extends JFrame { public StatusChange() { getContentPane().setLayout(new FlowLayout()); DefaultListModel model = new DefaultListModel(); JList list = new JList(model); model.addElement("one"); model.addElement("two"); model.addElement("three"); model.addElement("four"); model.addElement("five"); model.addElement("six"); model.addElement("seven"); model.addElement("eight"); model.addElement("nine"); list.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { JList list = (JList) e.getSource(); // execute twice System.out.printf("=====%s=====%n", list.getSelectedValue()); if (list.getValueIsAdjusting()) { // execute once System.out.println(list.getSelectedValue()); } } }); getContentPane().add(new JScrollPane(list)); JComboBox combo = new JComboBox(); combo.addItem("one"); combo.addItem("two"); combo.addItem("three"); combo.addItem("four"); combo.addItem("five"); combo.addItem("six"); combo.addItem("seven"); combo.addItem("eight"); combo.addItem("nine"); combo.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { JComboBox combo = (JComboBox) e.getSource(); // execute twice (occurs on selected & deselected) System.out.printf("-----%s-----%n", combo.getSelectedItem()); if (e.getStateChange() == e.SELECTED) { // execute once System.out.println(combo.getSelectedItem()); } } }); getContentPane().add(combo); pack(); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight()) / 2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new StatusChange(); } }