具有多个视图的ItemChangeListener

时间:2013-10-22 11:37:20

标签: java swing jcombobox itemlistener

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

1 个答案:

答案 0 :(得分:0)

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