Java swing中是否有多个模型的视图?(树模型和树选择模型)

Java swing中是否有多个模型的视图?(树模型和树选择模型),java,swing,model-view-controller,Java,Swing,Model View Controller,TreeModel和TreeSelectionModel都是模型类型。你可以获得那些正在使用的 tree.getModel(); 及 其中tree是JTree类型的对象。 这两种方法都有setter方法。 我的问题是: 如果我的结论是正确的,树有两个模型(TreeModel和TreeSelectionModel),那么这与MVC模式是如何结合的呢 你说得对,JTree(以及JTable和JList)实际上有两种模型。但是,TreeSelectionModel被视为GUI模型,而TreeMode

TreeModel和TreeSelectionModel都是模型类型。你可以获得那些正在使用的

tree.getModel();

其中tree是JTree类型的对象。
这两种方法都有setter方法。
我的问题是:

如果我的结论是正确的,树有两个模型(TreeModel和TreeSelectionModel),那么这与MVC模式是如何结合的呢

你说得对,
JTree
(以及
JTable
JList
)实际上有两种模型。但是,
TreeSelectionModel
被视为GUI模型,而
TreeModel
则是实际的应用程序数据模型,如下所述:

我假设你可以这样想:通过
JTree#getSelectionModel()
操作的模型实际上类似于
装饰器
包装
JTree#getModel()
。在这种情况下,您将实际拥有以下内容:

+-----------------------------------------------+
|    +-----------+                              |
|    | TreeModel >-------(relation: Decorator)  |
|    +-----^-----+       |                      |
|          |             |                      |
|          |   +---------v----------+           |
|          |   | TreeSelectionModel |           |
|          |   +---------^----------+           |
|          |             |                      |
|    +-----^-------------v----+                 |
|    |        Presenter       |                 |
|    +------------^-----------+                 |
|                 |                             |
|    +------------v-----------+                 |
|    |        TreeView        |                 |
|    +------------------------+                 |
|                                               |
+------------------- JTree ---------------------+
我使用的是
演示者
而不是
控制器
,因为当
视图
也是
控制器
时,这是我实现MVC模式的方式(嗯,我想这是一个MVP)

这肯定不是它的具体实现方式,但我认为它可能以类似的方式工作。无论如何,我认为它的实现仍然很好,不必担心使用它们:)

+-----------------------------------------------+
|    +-----------+                              |
|    | TreeModel >-------(relation: Decorator)  |
|    +-----^-----+       |                      |
|          |             |                      |
|          |   +---------v----------+           |
|          |   | TreeSelectionModel |           |
|          |   +---------^----------+           |
|          |             |                      |
|    +-----^-------------v----+                 |
|    |        Presenter       |                 |
|    +------------^-----------+                 |
|                 |                             |
|    +------------v-----------+                 |
|    |        TreeView        |                 |
|    +------------------------+                 |
|                                               |
+------------------- JTree ---------------------+