如何实现滚动条的自动滚动到textarea的末尾

      textarea的滚动主要是用到一个
jScrollPane1.getViewport().setViewPosition(new Point(0,0));//到顶
      但是也有人会说用jTextArea2 .setCaretPosition(0);但是事实证明,它好像没有什么大的用处,也放是本人不会用吧!
      下面是我用jbuilder做的一个程序,在jbuilder6.0+win2000+jdk1.4能运行。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
 * <p>Title: This follow is newman's writing</p>
 * <p>Description: I want better writing ,instead of best one!</p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: [email protected]</p>
 * @author Newman
 * @version 1.0
 */

public class ScrollFrame extends JFrame{
    JPanel jPanel1 = new JPanel();
    JScrollPane jScrollPane1 = new JScrollPane();
    BorderLayout borderLayout1 = new BorderLayout();
    JTextArea jTextArea1 = new JTextArea();
    JPanel jPanel2 = new JPanel();
    String str="gsdklfsdljfsdlkjfdsljfdslkfjslk/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfsdds/n"+
                "end sdfjsdkfjsdlkjfkssdjfkdsfjdksjfksdsdfdssdfs/n";
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();


    public ScrollFrame() {
        try {
            jbInit();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        ScrollFrame scrollFrame1 = new ScrollFrame(); 
        scrollFrame1.setSize(200,300);
        scrollFrame1.show();
    }
    private void jbInit() throws Exception {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
        jPanel1.setLayout(borderLayout1);
        jTextArea1.setText(this.str );
        jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        jButton1.setText("end");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jButton1_actionPerformed(e);
            }
        });
        jButton2.setText("start");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jButton2_actionPerformed(e);
            }
        });
        this.getContentPane().add(jPanel1, BorderLayout.CENTER);
        jPanel1.add(jScrollPane1,  BorderLayout.CENTER);
        jPanel1.add(jPanel2,  BorderLayout.SOUTH);
        jPanel2.add(jButton1, null);
        jPanel2.add(jButton2, null);
        jScrollPane1.getViewport().add(jTextArea1, null);
    }

    void jButton1_actionPerformed(ActionEvent e) {//end
        int height=10;
        Point p = new Point();
        p.setLocation(0,this.jTextArea1.getLineCount()*height);
        this.jScrollPane1.getViewport().setViewPosition(p);
    }

    void jButton2_actionPerformed(ActionEvent e) {//start
        Point p = new Point(0,0);
        this.jScrollPane1.getViewport().setViewPosition(p);
    }
}

向csdn上的高手们
                        学习
                               学习
                                      再学习!

你可能感兴趣的:(如何实现滚动条的自动滚动到textarea的末尾)