我正在学习Swing程序中文本组件的结构。
据我所知,JTextComponent
本质上分为视图和模型。模型是实现Document
的类的实例,包含所有文本并提供操作它的方法,视图以可视化的方式呈现文本。
但是,我不明白在哪里、如何以及为什么使用EditorKit
。我不确定它是否封装('拥有')模型(Document
),或者Document是否封装了它。并且不确定视图在所有这些中的位置。
所以两个问题:
1-请描述JTextComponents
中视图、Document
和EditorKit
之间的关系。什么封装了什么,什么与什么交互,为什么?
2-请解释EditorKit
的功能和作用。
谢谢你的帮忙
EditorKit是类似控制器的东西,它允许使用指定的内容类型。它具有对文档(模型)的引用并监听更改。
EditorKit提供Reader和Writer来加载/存储特定类型的文档(例如HTMLDocument或RtfDocument)。它还提供ViewFactory来为不同的文档元素(节点和叶子)创建视图。
EditorKit还提供了内容类型可能的操作列表。
您可以尝试一下如何创建和使用EditorKit。
EditorKit
是DefaultEditorKit
和StyledEditorKit
的抽象父级,两者都导出有用的Action
类,这些类对文本组件通用的Document
模型进行操作。在这个例子中,编辑器套件操作更新了Document
,它间接更新了监听视图组件。Charles Bell的HTMLDocumentEditor
,这里引用的就是一个相关的例子。
摘自http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html“一个控制器,称为编辑器套件,用于读取和写入文本并通过操作实现编辑功能。”