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;
            }
        }
    }

}

しかし、あなたが今見ることができるように..それは、PersonViewビュークラスの1つの特定のビューでのみ機能します。複数のビューで動作するようにするには、これをどのように変更すればよいですか?

編集:私の見解では、これを行います(現在、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 に答える