0

您好,我有 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 中获取该变量。

4

1 回答 1

0

setOverzicht(Persoon person)使用可以插入到侦听器构造函数中的方法创建一个接口。如果你想使用这个监听器,那么你唯一需要的就是实现接口。

于 2013-10-22T11:40:35.733 回答