こんにちは私は 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 から取得する方法を見つける必要があります。