我目前有一个设置,我在JScrollPane
里面有一个JTextArea
,这样你就可以滚动框中的文本。
我想做的是设置JScrollPane
,以便每当新文本添加到框中(总是在新行的底部)时,它将向下滚动到底部。
是否有一个简单的方法来实现这一点?
请注意:我不希望它被永久锁定在底部(用户仍然应该能够滚动文本),只是当文本正在更新。我追求的效果就像你在UNIX中跟踪日志文件。
为什么不直接将插入符号的位置设置到JTextArea的末尾呢?例如,
myTextArea.setCaretPosition(myTextArea.getDocument().getLength());
我不希望它被永久锁定在底部
这个例子使用AdjustmentListener
来暂停自动滚动,当鼠标按在滚动条的拇指上时。一旦拇指松开,自动滚动就会恢复。您可以使用@Hovercraft建议的方法将其适应JTextArea
。
我使用这个代码和JTextArea去底部添加文本
((DefaultCaret) jTextArea1.getCaret()).setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);