[英]Java Swing MVC architecture
如何組織Java Swing應用程序來實現MVC架構?
請參閱: Swing架構概述
我會把我的課分類:
您的項目必須至少由三個實體組成:您的model
,您的view
和您的controller
您的模型代表您的數據,視圖是您的數據的視圖,控制器是創建視圖和控制器的東西。
假設您有一個矩形,並且想要構建一個GUI,當用戶鍵入其邊時,該GUI顯示矩形的區域。
您的模型必須擴展Observable
類,這樣您就可以將類Square標記為MCV architecture
模型。
public class Square extends Observable {ecc....}
設置側面時,必須將模型的狀態設置為已更改,並通知正在偵聽模型的觀察者,例如:
public void setSide(double side) {
this.side=side;
setChanged();
notifyObservers();
}
PS: setChanged()
和notifyObservers()
由Observable
類提供。
現在第二步,您的View必須實現Observer
接口,因此您將此標記為模型更改的偵聽器。 實現Observer強制您編寫update
方法。
public class Square_View implements Observer {
JLabel area;
......
@Overried
public void update (Observable o, Object arg1) {
Square square=(Square)o;
area.setText(square.getArea());
}
好吧,只要方塊的一側發生變化,就會觸發通知並調用update方法。
現在controller
,MVC架構的思想:
public class MyProgram extends JFrame {
... somewhere in your class
Square s=new Square();
Square_View sv=new Square_View();
s.addObserver(sv);
}
正如我之前所說,您創建模型和視圖,並將視圖注冊為模型的觀察者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.