获取所选项目的ID将返回0

时间:2017-01-19 07:05:09

标签: java

我有两个JComboBoxes,另一个根据用户选择动态更改值。我正确地获得了所选项目的 id 。但是获取JComboBox的第一个元素会给我一个零值,我想在不触发ItemListener的情况下获取id。

ActionListener listener = new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        if ("Add".equals(e.getActionCommand())) {
            System.out.println("Position id is " + getPositionId());      
        }
    }
}

ItemListener itemListener = new ItemListener() {

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getSource() == department) {
            Department item = (Department) department.getSelectedItem();
            int departmentId = item.getId();
            model.setDeptId(departmentId);
            List<Position> list = model.getAllPositionId();
            DefaultComboBoxModel positionModel = new DefaultComboBoxModel(list.toArray());
            position.setModel(positionModel);
        }
        else if (e.getSource() == position) {
            Position item = (Position) cbPosition.getSelectedItem();
            int positionId = item.getId();
            model.setPositionId(positionId);
        }
    }
}

每次用户更改所选值。 DefaultComboBoxModel也使用相应的ID更改了其值。但是获得它会让我回归0

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案。我刚刚在ItemListener之外创建了一个void方法,它获取了第一个元素。