Java 刷新JScrollPane

Java 刷新JScrollPane,java,swing,jscrollpane,jtextarea,caret,Java,Swing,Jscrollpane,Jtextarea,Caret,我有个问题;我希望你能帮助我:) 我想刷新JScrollPane。我编写了一个示例程序,展示了我想做的事情: import javax.swing.JTextArea; import javax.swing.JScrollPane; import javax.swing.JPanel; import javax.swing.JFrame; public class ScrollEx extends JFrame{ private static final long serialVers

我有个问题;我希望你能帮助我:)

我想刷新JScrollPane。我编写了一个示例程序,展示了我想做的事情:

import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;

public class ScrollEx extends JFrame{
    private static final long serialVersionUID = 1L;

    private JPanel panel = new JPanel();
    private JTextArea area = new JTextArea(15, 20);
    private JScrollPane scroll = new JScrollPane(area);

    public ScrollEx(){
        super("JScrollPane Test!");

        setSize(300, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        this.panel.setSize(300, 300);
        this.panel.add(scroll);

        for(Integer i = 0; i <= 50; i++){
            this.area.append(i.toString() + "\n");
        }

        getContentPane().add(panel);    

        setVisible(true);
    }

    public static void main(String [] args){
        new ScrollEx();
    }
}
import javax.swing.JTextArea;
导入javax.swing.JScrollPane;
导入javax.swing.JPanel;
导入javax.swing.JFrame;
公共类ScrollEx扩展了JFrame{
私有静态最终长serialVersionUID=1L;
private JPanel panel=new JPanel();
私人JTextArea=新JTextArea(15,20);
私有JScrollPane滚动=新JScrollPane(区域);
公共ScrollEx(){
超级(“JScrollPane测试!”);
设置大小(300300);
setDefaultCloseOperation(关闭时退出);
该面板设置尺寸(300300);
此.panel.add(滚动);
对于(整数i=0;i
但是,这种打印超出了JTextArea的界限,JScrollPane不会自行刷新


将显示所有数据。如果您的意思是希望滚动窗格自动滚动以查看添加的最后一行,请查看有关发生的情况和解决方案的说明。

可能不是直接问题,但是,
JPanel
默认使用
FlowLayout
,请尝试更改为
BorderLayout
1)不要扩展框架或其他顶级容器。而是创建并使用其中一个容器的实例。2)不要设置顶级容器的大小。而是布局内容并调用
pack()
.3)应在EDT上创建并更新Java GUI。非常感谢您的回复!事实上,我的意思是:自动滚动以查看添加的最后一行…我正在检查您放置在此处的链接。