如何从JCombobox中选择项目

时间:2013-12-14 06:25:26

标签: java swing

我在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值。

任何帮助都是相关的。

1 个答案:

答案 0 :(得分:2)

尝试使用ItemListener。 也许这会导致您的首选行为。

您必须为新创建的行中的每个组合框创建一个新的actionListemer并进行分配 到相关的组合框。

Mayby u assigne总是将相同的ActionListener添加到每行的组合框中,这是没有意义的。 这可能是个问题。