Отказ от ответственности: Ваш вопрос немного неясен, поэтому ответ основан на моем личном предположении, что вы не хотите, чтобы слушатель действия комбо-бокса запускался при добавлении в него новых элементов.
Решение состоит в том, чтобы удалить прослушиватель действий из выпадающего списка в тот момент, когда вы добавляете в него новый элемент, а затем восстановить / повторно добавить прослушиватель действий.
SSCCE
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Test extends JFrame implements ActionListener {
private JComboBox<String> comboBox;
public Test() {
super("test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new FlowLayout());
String[] movies = { "Rambo 1", "Rocky 1", "Fargo", };
comboBox = new JComboBox<>(movies);
comboBox.addActionListener(this);
JTextField textField = new JTextField(10);
JButton button = new JButton("Add movie");
button.addActionListener(e -> {
String selectedMovie = textField.getText();
comboBox.removeActionListener(this);// Remove the action listener
comboBox.addItem(selectedMovie); // Add the movie without any action listener
comboBox.addActionListener(this); // Restore action listener
});
add(comboBox);
add(textField);
add(button);
setSize(300, 300);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new Test().setVisible(true);
});
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(comboBox.getSelectedItem() + " is a great movie.");
}
}