我正在尝试改进文档显示组件的现有实现。表达的担忧之一是,在加载大量文本时,我们将收到 OOM 异常。
根据我之前使用 .net 的经验,我确实知道一些基本组件实现了分页,因此并非所有文本都可视加载到文档中,因此事情不仅工作得更快,而且我们还有望避免 OOM 异常。
所以我想知道是否有任何基本的摆动组件,特别是 JTextPanel,它支持这些功能?
感谢您的帮助,非常感谢
似乎 Swing 将文档的实际存储与其表示分离。
我认为你应该能够通过定义一个AbstractDocument.Content
负责内存管理(例如分页)的实现来拥有你想要的功能。
DefaultStyledDocument
在其AbstractDocument.Content
构造函数中采用 a ,并且JTextPane
采用 a StyledDocument
,因此如果您定义了该实现,您应该能够将其插入。
我还没有尝试过,所以这只是一个建议——你也许可以在网上找到实现。
不,JTextPane
不支持内存页。您可以创建一个Docuemnt
实例并将文件内容Document
读Document
入JTextPane
. 然后获取所需的片段Document
并将其插入另一个仅显示所需片段的片段。