【问题标题】:MVC Pattern in Java Swing?Java Swing中的MVC模式?
【发布时间】:2010-03-27 12:18:08
【问题描述】:

请给我一个Java SWING包中使用的MVC模式的例子?

【问题讨论】:

    标签: java design-patterns swing


    【解决方案1】:

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

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

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

    【讨论】:

    • 您的总体说法是正确的,并且再补充一点,大多数可视化组件(如上面提到的 JTable)都使用 MVC 设计。 @JavaUser 当您使用 Swing 时,请务必查看“DefaultXX”[XX=JSomethingModel,即 DefaultListModel]...它将提供对给定 Swing 类的模型的良好理解,并且在大多数情况下足以用作您的应用程序中的模型
    • 使用 Swing 的模型作为应用程序的模型是一个陷阱。它没有逻辑,实际上是视图的一部分。
    【解决方案2】:

    查看 javax.swing.JTable 和 javax.swing.table.TableModel。 JTable 是 View,TableModel 是 Model,而您编写的带有侦听器和事件的代码是控制器,用于说明何时需要更新 View。

    【讨论】:

    • 实际上,View 是 BasicTableUI 的 L&F 特定子类
    【解决方案3】:

    我在使用 Martin Fowler 的 Presentation Model 及其 Java Swing 实现方面有很好的经验。

    【讨论】:

    • 本文与语言无关,Presentation Model 与 View 中的 Swing 模型类配合得很好。
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 2016-10-11
    • 2012-09-02
    • 2014-10-17
    • 2011-04-11
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多