Java Swing MVC架构

如何组织Java Swing应用程序来实现MVC架构?

请参阅: Swing架构概述

我会把我的课分类:

  • 对象类:表示对象
  • function类:提供function。 例如,读取/写入文件的方法或可能使用某些对象类进行计算的方法
  • 和GUI类(使用Swing),这将是用户将看到的。 这些类将执行function类提供的function。

您的项目必须至少由三个实体组成:您的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); } 

正如我之前所说,您创建了模型和视图,并将视图注册为模型的观察者。