2017-10-04 63 views
0

我有Model類:是傳遞模型對象來查看java swing swing MVC中的對象的好設計模式嗎?

class Model { 
Object[][] objects=new Object[3][]; 
} 

我有一個控制器,該控制器的動作監聽:

class MyListener implements ActionListener { 
    public void actionPerformed(ActionEvent a){ 
      //here I have to get objects array from Model and pass it to view to display 
} 
} 

但我擔心如果我通過對象數組JPanel它以後會引起問題。

JPanel使用objects還有另一種方法嗎?

回答

0

尚未觸及Swing很長一段時間,但仍然是: JPanel並不需要任何類型的模型對象,它只是一個可以聚合其他小部件的小部件。 通常,將模型傳遞給實際可以顯示某些內容的小部件是有意義的,例如,textArea,textField,表格等等。

在swing的MVC模型實現中,組件既可以作爲視圖(顯然)也可以作爲響應某些事件的偵聽器的控制器。

在任何情況下,適用下列規則:

  • 控制器模型
  • 視圖是「訂閱」更改爲模型的變化。通常,它在swing自身內部的組件模型中實現,但是可以擴展它們並定義你的行爲。一旦模型被控制器改變,它會將特殊事件引發到視圖中,如「嘿,我改變了」。
  • 模型通常鬆散耦合到視圖。
  • 視圖對這些事件作出反應並應用更改(通常用新數據重新繪製)。

從你的問題的同類很難說,當有人改變模型(沒有足夠的信息)

希望這有助於

+0

由於會發生什麼!我不明白如何看待模型改變?模型由後臺線程改變,而不是由用戶改變。 –

+0

查看觀察者模式。模型在這裏是可觀察的。模型應該公開註冊Observses的方法。在這種情況下,觀察者是觀察者。視圖會通知模型已更改。只要意見獲得有關這些更改的通知,觸發更改的人無關緊要 –