java – 限制JTextPane内存使用量

我有一个应用程序,它不断地在套接字上接收数据,然后将这些数据记录到文件中,同时在JTextPane中显示这些数据.当然,随着数据被写入JTextPane的底层文档,内存使用量继续增加.

是否有一种简单的方法来限制允许使用JTextPane的内存?我希望JTextPane的工作方式类似于典型命令shell的命令历史记录的工作方式.

解决方法

只需检查内容并相应地擦除它到最大缓冲区大小..因为它是一个JTextPane你将使用textpane使用的文档类:
void clampBuffer(int incomingDataSize)
{
   Document doc = textPane.getStyledDocument();
   int overLength = doc.getLength() + incomingDataSize - BUFFER_SIZE;

   if (overLength > 0)
   {
      doc.remove(0,over_length);
   }
}

这只是我写的一个片段,没有亲自检查……只是为了给你这个想法.当然应该在向textPane添加文本之前运行它.

顺便说一下,如果您没有使用JTextPane的丰富编辑器功能,我建议您使用更简洁的JTextArea.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量