【问题标题】:Lock JScrollPane to bottom of JTextArea (java swing)将 JScrollPane 锁定到 JTextArea 的底部(java swing)
【发布时间】:2014-05-11 15:28:42
【问题描述】:

我目前有一个设置,我在 JScrollPane 内有一个 JTextArea,以便您可以滚动查看框中的文本。

我想要做的是设置JScrollPane,这样每当新文本添加到框中(总是在新行的底部)它就会向下滚动到底部。

有没有简单的方法来实现这一点?

请注意:我不希望它被永久锁定在底部(用户应该仍然能够滚动浏览文本),就在文本更新时。我追求的是当你在 UNIX 中跟踪日志文件时的效果。

【问题讨论】:

    标签: java swing jscrollpane jtextarea


    【解决方案1】:

    为什么不简单地将插入符号位置设置到 JTextArea 的末尾。即,

    myTextArea.setCaretPosition(myTextArea.getDocument().getLength());
    

    【讨论】:

    • +1 Text Area Scrolling 提供了方便的替代方案,但这可能是控制滚动的最简单方法,正如 here 建议的那样。
    【解决方案2】:

    我不希望它被永久锁定在底部

    这个example 使用AdjustmentListener 来在鼠标按住滚动条的拇指时暂停自动滚动。松开拇指后,自动滚动恢复。您可以使用@Hovercraft 建议的approach 将其调整为JTextArea

    【讨论】:

      【解决方案3】:

      我使用此代码,JTextArea 在添加文本时转到底部

      ((DefaultCaret) jTextArea1.getCaret()).setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多