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); }
正如我之前所说,您创建了模型和视图,并将视图注册为模型的观察者。