Java swing中是否有多个模型的视图?(树模型和树选择模型)
TreeModel和TreeSelectionModel都是模型类型。你可以获得那些正在使用的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
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 ---------------------+