Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swing JTextPane编辑器大文件&;演出_Swing_File_Jtextpane - Fatal编程技术网

Swing JTextPane编辑器大文件&;演出

Swing JTextPane编辑器大文件&;演出,swing,file,jtextpane,Swing,File,Jtextpane,我正在使用JTextPane编辑XML文件。jflex解析器将xml文件拆分为标记并使用自定义文档(扩展名 DefaultStyledDocument)i颜色语法: doc.setCharacterAttributes(token.getCharBegin()+更改, token.getCharEnd()-token.getCharBegin(), Token\u Styles\u Define.getStyle(Token.getDescription()),true) 我的问题是加载和编辑大

我正在使用JTextPane编辑XML文件。jflex解析器将xml文件拆分为标记并使用自定义文档(扩展名 DefaultStyledDocument)i颜色语法:

doc.setCharacterAttributes(token.getCharBegin()+更改, token.getCharEnd()-token.getCharBegin(), Token\u Styles\u Define.getStyle(Token.getDescription()),true)

我的问题是加载和编辑大型xml文件,例如一个400kb的xml文件需要30秒,而对于700kb的1Mb,我得到java堆空间。 我在谷歌上搜索发现:

“定义JTextPane/JEditorPane可以很好地处理的限制(如500KB或1MB)。您只需将文件的一块加载到此大小的控件中即可。 首先加载文件的第一个分区。 然后,您需要与滚动容器进行交互,查看它是否已到达文件当前块的结尾/开头。如果是这样,请显示一个漂亮的等待光标,并将上一个/下一个块加载到内存和文本控件中。 加载区块是根据文件中当前光标位置(偏移量)计算的。 加载区块=偏移-限制/2到偏移+限制/2 加载块时,JTextPane/JEditorPane上的文本不得更改,否则用户会感觉文件处于另一个位置。 这不是一个简单的解决方案,但如果您找不到任何其他第三方控件来执行此操作,我会这样做。”(bruno conde)

这是一个很好的解决方案,谁能给我一个例子(链接教程项目)?或者还有其他解决方案吗? 我们如何提高jtextpane的性能?
Thx

JTextPane中的一兆文本不应该是问题。在我的桌面上,使用setText()添加1MB字符串大约需要1.6秒,但一旦加载,就没有明显的延迟

Try正在禁用语法突出显示。这是最有可能造成延误的原因。

这可能会有帮助吗,斯塔斯