我在Java Swing的JComboBox
中创建了JTable
,它有两个项目。
当我点击组合框时,会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
值。
任何帮助都是相关的。
答案 0 :(得分:2)
尝试使用ItemListener。 也许这会导致您的首选行为。
您必须为新创建的行中的每个组合框创建一个新的actionListemer并进行分配 到相关的组合框。
Mayby u assigne总是将相同的ActionListener添加到每行的组合框中,这是没有意义的。 这可能是个问题。