限定JTextArea显示500行,且JTextArea放入一个ScrollPane中,新的内容滚动显示在底部,如果显示的行数达到了500行,新的内容仍会滚动显示在底部,但最早的记录会被冲掉。
如何实现这种限制JTextArea显示行数?难道要自己先获取JTextArea中的内容,然后自己解析去掉最早显示的内容吗?
请高手指点,谢谢先。

解决方案 »

  1.   

    试着按照以下方式实现,但是总觉得这样做效率不高,请问高手们有什么好的建议吗?谢谢。============================================================String str = "==============fdfdffffffffffffff \n";

    int lineNum = 0;
    for(int i=0; i<5000; i++)
    {
        lineNum = text.getLineCount();
        
        if(lineNum>100)
        {
    for(int j=0;j<50;j++)
    {
        String tmp = text.getText();
        int index = tmp.indexOf("\n");
        try {
    text.getDocument().remove(0, index+1);
        } catch (BadLocationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
        }     
    }
        } 
        text.append(str); //text是一个JTextArea
        
    }
     //在每加入一条新消息的时候,都会自动在消息末尾添加换行符“\n”