将JScrollPane锁定到JTextArea的底部(java swing)

时间:2011-10-29 12:25:01

标签: java swing jscrollpane jtextarea

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

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

有没有一种简单的方法可以达到这个目的?

请注意:我不希望它被永久锁定在底部(用户仍然可以滚动文本),就像正在更新文本时一样。我的效果就像在UNIX中拖尾日志文件一样。

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:3)

  

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

当鼠标按住滚动条的拇指时,此example使用AdjustmentListener暂停自动滚动。一旦拇指被释放,自动滚动就会恢复。您可以使用@Hovercraft建议的approach将其调整为JTextArea

答案 2 :(得分:1)

我使用此代码,JTextArea在添加文本

的底部
((DefaultCaret) jTextArea1.getCaret()).setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);