У меня есть следующая программа
package utests;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
class Foo extends JFrame {
private JComboBox combo;
public static void main(String... args) {
Foo f = new Foo();
f.showUI();
}
public void showUI() {
this.setVisible(true);
JPanel pane = new JPanel();
this.setContentPane(pane);
combo = new JComboBox();
combo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
if (arg0.getStateChange() == ItemEvent.SELECTED) {
System.out.println("You selected " + combo.getSelectedItem());
}
}
});
refreshBox();
pane.add(combo);
this.pack();
}
public void refreshBox(){
combo.removeAllItems();
ArrayList<String> list = new ArrayList<String>();
list.add("godsf");
list.add("södlkf");
list.add("ldsjlkfdsj");
for (String s : list) {
combo.addItem(s);
}
}
}
Программа немедленно покажет вам строку
You selected godsf
Как я могу проверить, проверял ли пользователь что-то, а не программу?
edit: я немного изменил программу: проблема в том, что мне нужно обновить окно несколько раз.Каждый раз, когда я обновляю данные в поле, срабатывает ItemListener, и я получаю неправильные результаты.Как я могу проверить, что Действие выполняется Пользователем, а не самой Программой?Добавление некоторых логических значений, похоже, не очень похоже на Java ...