我有两个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
。
答案 0 :(得分:0)
我已经找到了解决方案。我刚刚在ItemListener
之外创建了一个void方法,它获取了第一个元素。