Swing JTextPane编辑器大文件&;演出
我正在使用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的性能?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) 我的问题是加载和编辑大
ThxJTextPane中的一兆文本不应该是问题。在我的桌面上,使用setText()添加1MB字符串大约需要1.6秒,但一旦加载,就没有明显的延迟 Try正在禁用语法突出显示。这是最有可能造成延误的原因。这可能会有帮助吗,斯塔斯