Si estás manejando los eventos correctamente, el itemStateChanged (método del ItemListener) no debería invocarse.
Según la documentación:
Cita: Invoked when an item has been selected or deselected by the user. The code written for this method performs the operations that need to occur when an item is selected (or deselected).
Te dejo un ejemplo listo para ejecutar:
Código Java:
Ver originalpackage comboitemselect.ComboItemSelect;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
*
* @author farfamorA
*/
public class MyFrame
extends JFrame {
public MyFrame() {
myLabel
= new javax.
swing.
JLabel(); myButton
= new javax.
swing.
JButton();
getContentPane
().
setLayout(new java.
awt.
FlowLayout());
getContentPane().add(myComboBox);
myLabel.setText("(Sin valor)");
getContentPane().add(myLabel);
myButton.setText("Agregar");
getContentPane().add(myButton);
pack();
@Override
if (e.
getStateChange() == java.
awt.
event.
ItemEvent.
SELECTED) { myLabel.setText(myComboBox.getSelectedItem().toString());
System.
out.
println("myComboBox.itemStateChanged"); }
}
});
@Override
myComboBox.addItem("Item " + (myComboBox.getItemCount()+1));
}
});
}
public static void main
(String args
[]) { @Override
public void run() {
new MainFrame().setVisible(true);
}
});
}
}
Como verás, cuando se pulsa el botón, se añaden items al combo. Sin embargo, el evento de item seleccionado no se dispara sino hasta que efectivamente selecciones un item.