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

原创 2003年05月01日 10:58:00

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

Jquery实现让textarea的滚动条始终保持在最下方

本文接着上篇继续: 在每次发言之后要使刚刚发言显示在最下面  和刚刚比更改了一下javascript代码 Js代码: $(document).ready(function(){ $("#...
  • wangnetkang
  • wangnetkang
  • 2012年07月05日 16:02
  • 9619

Java中实现滚动条自动滚动到TextArea的末尾(小知识点)

在设置TextArea滚动条时,
  • u013233075
  • u013233075
  • 2014年05月13日 10:21
  • 3454

解决ext textarea下拉框自动下拉

由于ext的textarea没有scrollTop属性,所以比较麻烦, 代码如下: { xtype : 'textareafield', n...
  • jdzms23
  • jdzms23
  • 2015年05月08日 17:17
  • 1346

html textarea 自动在底部滚动的实现方法------终于搞定你

之前在BCB中也是一样, 多行文本框的滚动, 很不人性化,  看不到滚动效果, 后来我用特殊方法解决了。         如今的html textarea也遇到同样问题, 摸索良久, 终于搞定, 如下...
  • stpeace
  • stpeace
  • 2016年02月28日 11:17
  • 7331

html中怎么样让textarea的滚动条始终在最下方

在网上说  是这样在节点中加入以下代码onpropertychange="this.scrollTop = this.scrollHeight " onfocus...
  • xwygn
  • xwygn
  • 2011年07月21日 13:29
  • 3788

textarea如何实现高度自适应(不出现滚动条)?

今天需要些一个回复评论的页面,设计师给的初始界面就是一个只有一行的框。然后当时就想这个交互该怎么实现比较好,然后想起了新浪微博的做法:点击评论,默认显示一行,当输入的文字超过一行或者输入Enter时,...
  • cometwo
  • cometwo
  • 2016年02月27日 15:26
  • 6877

textarea去掉右侧滚动条,去掉右下角拖拽

一:textarea去掉右侧滚动条,去掉右下角拖拽 代码: 二:HTML 标签的 wrap 属性 以下面这个例子为例,将 60 个字符的文本输入到一个 40 个字符宽的文本区域...
  • jiangxindu1
  • jiangxindu1
  • 2014年12月31日 18:55
  • 6605

html textarea 怎样才能不显示滚动条?

问题背景 在最近一个项目中,客户需要打印一些表单,原先设计的一种方案出现了重大bug,他们公司的打印机对纸张大小要求特别高,每次都得强制执行才行,最后我想到了用WinForm自带的控件WebBrow...
  • junshuaizhang
  • junshuaizhang
  • 2012年07月24日 14:03
  • 22059

jQuery_review之textarea滚动条往上往下的实现

众所周知,各种浏览器对于HTML、CSS以及原生JS的支持不尽相同。但是jQuery很好地封装了各种浏览器不同的实现,能够很好地解决跨浏览器的CSS问题。下面就是在review表单操作的时候的一个DE...
  • ziwen00
  • ziwen00
  • 2014年07月24日 22:14
  • 1974

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

      textarea的滚动主要是用到一个jScrollPane1.getViewport().setViewPosition(new Point(0,0));//到顶      但是也有人会说...
  • newman0708
  • newman0708
  • 2003年05月01日 10:58
  • 1877
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何实现滚动条的自动滚动到textarea的末尾
举报原因:
原因补充:

(最多只允许输入30个字)