当前位置: 首页 > 知识库问答 >
问题:

如何限制jtextarea中的行数?

阎涵忍
2023-03-14

我正在尝试为一个服务制作一个GUI,它有一个JTextArea来查看消息,每条消息都写在一行上,如果需要的话还会进行文字包装。

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

编辑

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

共有1个答案

甄坚白
2023-03-14

这样会更有效率吗?

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();
        }
    }
}
 类似资料:
  • null 我有一个PlainDocument,它根据字符串的像素宽度限制单行文本的长度,以大写Ws(我字体中最宽的字符)度量:

  • 问题内容: 与PostgreSQL中的SQL Server或DB2或mySQL等效吗? 问题答案: 您可以像在MySQL中一样使用LIMIT,例如:

  • 问题内容: 有没有一种可靠的方法来计算字符串如何在JTextArea中划分为行? 我有一个固定宽度的JTextArea,当它被填充时,会添加一个新行并垂直扩展。 现在,我需要确切地知道哪一行中的字符。我可以使用字体指标来计算单个字符的宽度,但是我不知道这是否可靠,或者是否有更好的方法。 字体指标是“绝招”吗? 问题答案: 所有JTextComponent都具有和可以提供帮助的方法,但也许更好的是j

  • 有没有可靠的方法来计算一个字符串在JTextArea中是如何划分成行的? 我有一个固定宽度的JTextArea,当它被填充时,就会添加一个新行,并且它会垂直扩展。 现在,我需要确切地知道哪些字符在哪一行。我可以使用字体度量来增加单个字符的宽度,但我不知道这是否可靠,或者是否有更好的方法。 字体度量“诡计”是唯一的方法吗?

  • 问题内容: 我尝试在运行时中显示一些文本。但是,当我使用的循环来按顺序显示文本时,它仅显示最后一个循环的文本。这是我的代码: 我要显示它。但只显示一次“ ” 有人可以为我解释吗? 问题答案: 做到这一点,它将“字段的文本”设置为您提供的值,从而删除所有先前的内容。 你想要的是 如果您使用的是Java 8,则另一个选择可能是 (假设您想在每次调用该方法时替换文本,但仍然可以使用) 根据评论的假设进行

  • 问题内容: 我正在Java Swing中创建一个表单,其中一个字段是。当我在所有其他字段上使用键时,它将焦点移至下一个小部件,但在中,它将在文本中插入制表符(水平空格)。 如何修改此行为? 问题答案: