我目前有一个设置,我在JTextArea
内有一个JScrollPane
,以便您可以滚动框中的文字。
我想要做的是设置JScrollPane
,这样每当新文本添加到框中时(总是在新行的底部),它将向下滚动到底部。
有没有一种简单的方法可以达到这个目的?
请注意:我不希望它被永久锁定在底部(用户仍然可以滚动文本),就像正在更新文本时一样。我的效果就像在UNIX中拖尾日志文件一样。
答案 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);