Java 如何在追加后自动向下滚动JTextArea?
我创建了一个JFrame,带有一个JTextArea。我想在每次追加后自动向下滚动文本区域。我应该如何管理它 我尝试了Java 如何在追加后自动向下滚动JTextArea?,java,swing,jtextarea,Java,Swing,Jtextarea,我创建了一个JFrame,带有一个JTextArea。我想在每次追加后自动向下滚动文本区域。我应该如何管理它 我尝试了log.setCaretPosition(log.getDocument().getLength()),但没有更改 package scrollit; import java.awt.*; import javax.swing.*; import static javax.swing.JFrame.EXIT_ON_CLOSE; public class ScrollIt ex
log.setCaretPosition(log.getDocument().getLength())代码>,但没有更改
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");
}
}
有两种方式(但必须置于)
a) 设置(正确的方式)
e、 g
b) 使用(从JScrollPane
)移动到它的最大值我的更简单、更高效。我们将插入符号设置为文本的长度,以便像这样将其放在末尾
public void appendText(String str){
txtArea.append(str + "\n");
scrollDown();
}
public void scrollDown(){
txtArea.setCaretPosition(txtArea.getText().length());
}
public void appendText(String str){
txtArea.append(str + "\n");
scrollDown();
}
public void scrollDown(){
txtArea.setCaretPosition(txtArea.getText().length());
}