簡體   English   中英

Java Swing MVC架構

[英]Java Swing MVC architecture

如何組織Java Swing應用程序來實現MVC架構?

請參閱: Swing架構概述

我會把我的課分類:

  • 對象類:表示對象
  • 功能類:提供功能。 例如,讀取/寫入文件的方法或可能使用某些對象類進行計算的方法
  • 和GUI類(使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM