本文介绍了如何在追加后自动向下滚动JTextArea?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用JTextArea创建了一个JFrame。我想在每次追加后自动向下滚动textarea。我该如何管理?
I've created a JFrame, with a JTextArea. I would like to scroll down the textarea automatically, after each append. How should I manage it?
我已经尝试过 log.setCaretPosition(log.getDocument()。getLength());
,但没有任何改变。
I've tried log.setCaretPosition(log.getDocument().getLength());
, but nothing changed.
package scrollit;
import java.awt.*;
import javax.swing.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
public class ScrollIt extends JFrame {
public static void main(String[] args) {
ScrollIt sc = new ScrollIt();
}
public ScrollIt() {
super();
JTextArea log = new JTextArea();
log.setPreferredSize(new Dimension(50,50));
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(log);
pack();
setVisible(true);
log.append("a\n");
log.append("b\n");
log.append("c\n");
log.append("d\n");
log.append("e\n");
log.append("f\n");
}
}
推荐答案
那里有两种方式(但必须放在)
there are two ways (but JTextArea must be placed in JScrollPane)
a)设置(正确方法)
a) set Caret (correct of ways)
例如
DefaultCaret caret = (DefaultCaret) log.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
b)移动(来自 JScrollPane
)到其最大值
b) moving with JScrollBar
(from JScrollPane
) to its max value
这篇关于如何在追加后自动向下滚动JTextArea?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!