您好,我有 ItemChangeListener ......但我希望它负责多个视图。(如果这不是正确的方法,请告诉我其他方法)所以当我在 JComboBox 中选择一个项目时,我可以使用我选择的那个对象
public class ItemChangeListener implements ItemListener {
Persoon selectedPerson;
PersoonView view;
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED) {
Object item = event.getItem();
// do something with object
if(item instanceof Persoon) {
this.selectedPerson = (Persoon) item;
view.setOverzicht(this.selectedPerson);
} else {
this.selectedPerson = null;
}
}
}
}
但是正如您现在所看到的那样。它仅适用于 PersoonView 视图类的一个特定视图。我应该如何修改它以使用多个视图?
编辑:在我看来我这样做(现在我有 2 个视图)
personenList = new JComboBox();
for (Persoon p : app.getPersonen()) {
personenList.addItem(p.getNaam());
}
personenList.addItemListener(new ItemChangeListener());
每次我选择另一个项目时,我都想让 selectedPerson 在该视图中使用,例如,我想在我的视图中的 ActionListener 中执行此操作。
selectedPerson.voegtoeRek(new Rekening(Integer.parseInt(nieuwnr.getText()), selectedPerson));
所以实际上我需要找到某种方法从 ItemChangeListener 中获取该变量。