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上的高手们                         学习                                学习                                       再学习!  
 
  |