我正在尝试为服务创建一个GUI,该GUI具有一个JTextArea来查看消息,每个消息都写在一行上,并在需要时进行自动换行。
消息是通过套接字到达的,所以我只是用来更新JTextArea的.append(message),我需要将这些行限制为50或100,并且我不需要限制每行的字符数。
如果有一种方法可以限制JTextArea中的行数,或者有其他替代方法呢?
我真的可以在这件事上使用协助。
编辑
问题是每个客户端都可以发送无限行,所有这些行都必须可读,因此这不是对JTextArea中行数的简单检查。我需要删除较旧的行才能查看较新的行。
这样会更有效吗?
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] 删除。
我来说两句