你列出的所有文档类都具有相同的基本功能,并且每个类都根据需要扩展功能以填补空白。实际上,只需要意识到需要做什么并使用相应的文档类型即可。例如,如果我正在编辑一个HTML文件,则会使用HTMLDocument类。
我在下面简要描述了您在问题中请求的每个Document类。
Document
文档接口代表整个HTML或XML文档。在概念上,它是文档树的根,提供对文档数据的主要访问。
这是所有其他文档类型将继承的接口。它为所有其他文档类型提供了合约。
AbstractDocument
这个类实现了文档的锁定机制,允许多个读取器或一个写入器,并且在开始对文档进行另一次变异之前,写入器必须等待文档的所有观察者被通知先前的更改。
该类允许您使用不同类型的文档,并使用非常松散的规则集。 由于它非常通用,因此实现起来更加困难。
StyledDocument 是提供所有样式文档的合同的另一个接口。
DefaultStyledDocument 实现了此接口,因此我们将在下面介绍它。
DefaultStyledDocument
一个可以使用字符和段落样式进行标记的文档,类似于Rich Text Format。该文档的元素结构代表样式运行的交叉点。这些样式运行被映射到段落元素结构中,该元素结构可能位于其他结构中。由于逻辑样式分配给了段落边界,因此样式运行在段落边界处中断。
DefaultStyledDocument允许您在文档中放置特殊字符以帮助格式化等操作...当您考虑DefaultStyledDocument时,请想到Microsoft Word。
DocumentFilter
包含DocumentFilter的文档被修改(通过插入或删除)时,它将相应的方法调用转发给DocumentFilter。
这是一个非常有用的类,它会“监听”针对您的文档发生的事件(即修改),并在每个事件发生时执行动作。
PlainDocument
实现AbstractDocument接口,不包含任何格式特殊字符(类似记事本而非Word)。当你只想存储文本(日志文件等)时,应使用此文档。
HTMLDocument
模拟HTML的文档。此模型的目的是支持浏览和编辑。
创建/修改包含HTML代码且旨在在浏览器中查看的文档时应使用HTMLDocument。