Java Swing中的MVC模式?

3
请给我一个Java SWING包中使用MVC模式的示例?
3个回答

6

基本上,Swing组件本身就是一个控制器,它引用了一个视图和一个模型。

视图在JComponent.ui字段中,该字段被所有Swing组件继承,并由Look&Feel机制用于提供Swing组件的不同视觉表示。

各个子类中有不同的setModel()方法,使用不同的模型类型,如TableModelButtonModel,应用程序员可以实现这些模型来包含Swing UI显示和操作的实际数据。


2
你的总体陈述是正确的,而且要再补充一点,大多数视觉组件——比如上面提到的JTable——都使用MVC设计。@JavaUser 在处理Swing时,务必查看“DefaultXX”[XX=JSomethingModel,例如DefaultListModel]...这将提供对特定Swing类的模型的良好理解,并且在大多数情况下足以用作您应用程序的模型。 - Wintermut3
使用Swing的模型作为应用程序的模型是一个陷阱。它没有逻辑,实际上是视图的一部分。 - flup

4

看一下javax.swing.JTable和javax.swing.table.TableModel。 JTable是View,TableModel是Model,你编写的具有侦听器和事件的代码是控制器,它告诉View何时需要更新。


实际上,View 将是 BasicTableUI 的 L&F 特定子类。 - Michael Borgwardt

2

我非常擅长使用Martin Fowler的演示模型及其Java Swing实现。


这篇文章与编程语言无关,Presentation Model 在 View 中与 Swing 模型类非常配合。 - flup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接