2013-10-22 18 views
0

你好,我有ItemChangeListener ...但我希望這是負責多個視圖。 (如果不這樣做的正確方法這個請告訴我是怎麼回事),所以,當我在一個JComboBox,選擇一個項目我得到我選擇ItemChangeListener與多個視圖

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

} 

該對象的工作,但如u現在就可以看到..它只適用於一個特定的視圖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

那裏我看不到任何問題 – mKorbel

+0

我有2個視圖調用此personenList.addItemListener(new ItemChangeListener());這兩個視圖都有一個方法來更新一個JTextArea,其中包含關於所選項目的信息。 itemchangelistener如何讓正確的方法知道要選擇的視圖? – Reshad

+0

你是[平均(只有sceleton)](http://stackoverflow.com/a/19511300/714968),或者可能有二維數組作爲JComboBox的來源,一個,兩個三個JComboBoxes(有點像'Vector ' ,地圖或AbstractTableModel),然後在JComboBox中的選擇可以返回任何值從鏈接,相關的行 – mKorbel

回答

0

setOverzicht(Persoon person)創建一個接口,可以插入到偵聽器的構造函數中。如果你想使用這個監聽器,那麼你唯一需要的就是實現這個接口。

+0

我的意思是更喜歡..我必須讓我的itemChangeListener返回人物品? (因此,讓一個getter),以便我可以在我的視圖或它的工作?如果我必須讓一個吸氣劑,這應該如何? – Reshad