你好我有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中获取变量。
答案 0 :(得分:0)
使用setOverzicht(Persoon person)
方法创建一个可以插入侦听器构造函数的接口。如果你想使用这个监听器,你唯一需要的就是实现接口。