gpt4 book ai didi

java - 限制 JTextPane 空间使用

转载 作者:行者123 更新时间:2023-11-30 06:29:30 25 4
gpt4 key购买 nike

我正在使用 JTextPane 从网络应用程序记录一些数据,在程序运行大约 10 多个小时左右后,我收到内存堆错误。文本继续添加到 JTextPane 中,这会不断增加内存使用量。无论如何我可以让 JTextPane 像命令提示符窗口一样工作吗?当新文本出现时,我应该去掉旧文本吗?这是我用来写入 JTextPane 的方法。

volatile JTextPane textPane = new JTextPane();
public void println(String str, Color color) throws Exception
{
str = str + "\n";
StyledDocument doc = textPane.getStyledDocument();
Style style = textPane.addStyle("I'm a Style", null);
StyleConstants.setForeground(style, color);
doc.insertString(doc.getLength(), str, style);
}

最佳答案

一旦 StyledDocument 的长度超过一定限制,您可以从开头删除等量的内容:

int docLengthMaximum = 10000;
if(doc.getLength() + str.length() > docLengthMaximum) {
doc.remove(0, str.length());
}
doc.insertString(doc.getLength(), str, style);

关于java - 限制 JTextPane 空间使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com