我们需要使用swing加载和显示大文件(富文本),大约50mb.问题是呈现文件的性能非常差.我们尝试了JTextPane和JEditorPane没有运气.
有人有这方面的经验,可以给我一些建议吗?
谢谢,
我没有任何经验,但如果你真的需要加载大文件,我建议你用JTextPane/JEditorPane做一些延迟加载.
定义JTextPane/JEditorPane可以很好地处理的限制(例如500KB或1MB).您只需要将一大块文件加载到具有此大小的控件中.
首先加载文件的第一个分区.
然后,您需要与滚动容器进行交互,并查看它是否已到达文件当前块的结尾/开头.如果是这样,显示一个漂亮的等待光标并将上一个/下一个块加载到内存并进入文本控件.
加载块是根据文件中当前光标位置(偏移量)计算的.
loading chunk = offset - limit/2 to offset + limit/2
加载块时,JTextPane/JEditorPane上的文本不得更改,否则用户会感觉自己处于文件的另一个位置.
这不是一个简单的解决方案,但如果你没有找到任何其他第三方控制来做到这一点,我会这样做.