Взгляните на этот источник:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Tester {
public Tester(){
JComboBox box = new JComboBox();
box.addItem("One");
box.addItem("Two");
box.addItem("Three");
box.addItem("Four");
box.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
System.out.println(e.getItem() + " " + e.getStateChange() );
}
});
JFrame frame = new JFrame();
frame.getContentPane().add(box);
frame.pack();
frame.setVisible(true);
}
public static void main(String [] args) {
Tester tester = new Tester();
}
}
Использование getStateChange, чтобы определить, выбран ли объект или отменил выбор
Согласно этому поток ,
Это смещено, когда Вы оставляете один результат, и затем названный снова, когда установлено на другой результат
не прислушиваются к itemStateChanged. Используйте ActionListener вместо этого, который хорош для обработки событий комбинации.
Вам нужен ItemStateListener, если необходимо отдельно обработать отмену выбора / выбор в зависимости от включенного объекта.Изменение состояния объекта в itemStateChanged заставляет itemStateChanged быть запущенным... названный "повторной входимостью".
Йо может это сделать так:
import java.awt.event.*;
jComboBox1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Hello");
}
});