3

我目前正在从事 Swing UI 分配。这项工作涉及在 JTextArea 中显示大文件内容。文件大小可大至 2 GB。

我最初的想法是从文件中延迟加载内容,比如 1 MB 的内容将显示给用户。当用户滚动时,我将检索下一个要显示的 1 MB 内容。所有这些操作都将发生在后台线程(Swing Worker)中。

我查看了 JTextArea API,方法 insert 以 String 和 int(插入的位置) 作为参数。

这足够了,但我担心性能,因为检索到的内容(一次 1 MB)必须转换为 String 对象。

是否有任何其他解决方法或任何其他替代/更好的解决方案。

4

1 回答 1

3

效率问题在于文档模型。

要走的路可能是提供一个有效的自定义Document实现。

但是,就个人而言,我会尝试重新考虑并尝试使用不同的用户界面。谁愿意滚动浏览 2 GB 的数据?

于 2010-04-29T12:13:17.590 回答