Как выбрать элементы из JCombobox

Я делаю JComboBox в JTable в Java Swing, которые имеют два элемента.

Когда я нажимаю на поле со ActionEvent срабатывает ActionEvent и мой ActionListener уведомляется.

Когда я выбираю элемент в поле со списком, слушатель вызывается снова.

comboBox.addActionListener(new ActionListener() {

 @Override
 public void actionPerformed(ActionEvent e) {
 String school_id = null;
 JComboBox comboBox = (JComboBox) e.getSource();
 String access_value = comboBox.getSelectedItem().toString();
 final int selectedRowIndex = table.getSelectedRow();
 System.out.println("selected row: " + selectedRowIndex);
 if(selectedRowIndex == -1) {
 System.out.println("returned value");
 return;
 } else {
 school_id = (String) table.getModel().getValueAt(selectedRowIndex, 2);
 }
 if(adminDaoImpObj.updateSchoolAccount(school_id, access_value) > 0) {
 //System.out.println("updated success");
 } else {
 System.out.println("fail");
 }
 System.out.println(school_id + "--------");
 }
 });

Когда я нажимаю на поле со списком, оно показывает ранее выбранное значение school_id.

После выбора элемента в поле со списком он отображает текущее выбранное значение строки school_id,

но я хочу, чтобы он показывал только выбранное значение school_id.

Любая помощь оценивается.

1 ответ

Попробуйте вместо этого использовать ItemListener. Возможно, это приводит к вашему предпочитаемому поведению.

Вы должны создать новый actionListemer для каждого выпадающего списка во вновь созданной строке и назначить его соответствующему combobox.

Mayby u назначает всегда тот же ActionListener для combobixes для каждой строки, что не имеет смысла. Это может быть проблемой.

licensed under cc by-sa 3.0 with attribution.