tja*_*son 7 java memory-management 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);
}
}
Run Code Online (Sandbox Code Playgroud)
这只是我写的一个片段,没有亲自检查..它只是给你这个想法.当然应该在向textPane添加文本之前运行它.
顺便说一句,如果你没有使用丰富的编辑器功能,JTextPane我建议你使用JTextArea更轻松的.