why is there a memory leak in this?
it just keeps grow and growing and growing...
someone help me please... this brought a over night test up to 166MB of memory usage...
thanks
aaron
import javax.swing.*;
import java.awt.*;
import javax.swing.text.*;
public class BufferedOutputArea extends JTextArea
{
private int size_of_buffer;
private int cut_back = 0;
String tempString;
public BufferedOutputArea( int buffer)
{
this(buffer, 0);
}
public BufferedOutputArea( int buffer, int cut_back)
{
size_of_buffer = buffer;
this.cut_back = cut_back;
}
public void setBufferSize(int buffer)
{
size_of_buffer = buffer;
}
public int getBufferSize()
{
return size_of_buffer;
}
public void append(String str)
{
tempString = getText()+str;
super.append(str);
if (tempString.length() > this.size_of_buffer)
{
try
{
System.out.println("hit "+str + "\n" + size_of_buffer + " " + cut_back + " " + tempString.length());
// setText(getText(cut_back, tempString.length()));
getDocument().remove(0,tempString.length() - this.size_of_buffer + cut_back);
System.out.println(""+getText().length());
}
catch (BadLocationException e)
{
}
}
setCaretPosition(getText().length());
}
public static void main(String [] args)
{
JFrame frame = new JFrame();
BufferedOutputArea output = new BufferedOutputArea(5000, 2000);
JScrollPane scroll = new JScrollPane(output);
scroll.setAutoscrolls(true);
frame.getContentPane().add(scroll);
frame.setSize(500,500);
frame.setVisible(true);
output.append("hello you think\nthat you are so cool\njust because your gnigg?\n");
try
{
for (int i= 0; i < 400; i++)
{
output.append("fudge this out put " + i + "\n3444444444444444444444444444444444444999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999\n" );
Thread.sleep(300);
}
}
catch (Exception e)
{
}
}
}
