实现滚动条的自动滚动到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: newman0708@eastday.com</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上的高手们
学习 学习 再学习!