java - 如何限制 JTextArea 中的行数?

标签 java swing jtextarea

我正在尝试为服务制作一个 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();
        }
    }
}

关于java - 如何限制 JTextArea 中的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12160060/

相关文章:

java - 翻转 MigLayout 中的行和列?

java - jButtons 在运行时调整大小

java - 使用 new 关键字从同一包内的类外部调用它时在框架内获取空文本区域

java - 文本超出 JTextArea

java - JTextArea 过滤器和/或时间输入 (00 :00:00) Java

java - 我想将一个字符串划分为某个字符串

java - 为什么 ArrayDeque 中不允许空值?

java - 当 Pane 宽度超过指定值时,在 JTextPane 中换行文本

java - 如何在使用 ini4j 阅读的 Java 中编辑和添加时正确使用 ini 文件?

java - 如何编写一个 Java 类,将用户输入的数字数据解释为星期几