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



我目前有一个设置,我在JScrollPane里面有一个JTextArea,这样你就可以滚动框中的文本。

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

是否有一个简单的方法来实现这一点?

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

为什么不直接将插入符号的位置设置到JTextArea的末尾呢?例如,

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

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

这个例子使用AdjustmentListener来暂停自动滚动,当鼠标按在滚动条的拇指上时。一旦拇指松开,自动滚动就会恢复。您可以使用@Hovercraft建议的方法将其适应JTextArea

我使用这个代码和JTextArea去底部添加文本

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

最新更新