如何限制JTextArea中的行数?

拉尔夫·安德烈森(Ralph Andreasen):

我正在尝试为服务创建一个GUI,该GUI具有一个JTextArea来查看消息,每个消息都写在一行上,并在需要时进行自动换行。

消息是通过套接字到达的,所以我只是用来更新JTextArea的.append(message),我需要将这些行限制为50或100,并且我不需要限制每行的字符数。

如果有一种方法可以限制JTextArea中的行数,或者有其他替代方法呢?

我真的可以在这件事上使用协助。

编辑

问题是每个客户端都可以发送无限行,所有这些行都必须可读,因此这不是对JTextArea中行数的简单检查。我需要删除较旧的行才能查看较新的行。

yan bellavance:

这样会更有效吗?

final int SCROLL_BUFFER_SIZE = 100;
public void trunkTextArea(JTextArea txtWin)
{
    int numLinesToTrunk = txtWin.getLineCount() - SCROLL_BUFFER_SIZE;
    if(numLinesToTrunk > 0)
    {
        try
        {
            int posOfLastLineToTrunk = txtWin.getLineEndOffset(numLinesToTrunk - 1);
            txtWin.replaceRange("",0,posOfLastLineToTrunk);
        }
        catch (BadLocationException ex) {
            ex.printStackTrace();
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章