Java如何产生有滚动条的TextArea

当TextArea中消息不断递增时,可以适时滚动以显示最新的信息。
谢谢 wangyi6912的回答。我使用static int SCROLLBARS_VERTICAL_ONLY 
          只创建并显示垂直滚动条。 
现在问题是,我在TextArea中输入内容增多时,显示的是最早的内容而不是最新的,如何使滚动条总是拉置最下边呢?说得好加分!

补充回答:你向TextArea内追加内容可以使用append方法,滚动条自动下滚;如果你使用的是 setText方法,那么需要手工把光标定位到内容的最后,同样可以是滚动条下滚。代码如下:
import java.awt.Frame;
import java.awt.TextArea;

public class TestFrame {

    public static void main(String[] args){
        Frame jf=new Frame();
        TextArea jta=new TextArea();
        jf.add(jta);
        jf.setSize(400, 300);
        jf.setVisible(true);
        jta.setText("test\n");
        for(int i=0;i<100;i++){
          jta.setText(jta.getText()+"hello"+i+"\n");
          jta.setCaretPosition(jta.getText().length());
        }
   //     jta.append("hello"+i+"\n"); //这样方式只需要一行代码
    }
}

1)如果是JTextArea,需要把JTextArea包含到JScrollPane滚动面板中
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class TestFrame {

    public static void main(String[] args){
        JFrame jf=new JFrame();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextArea jta=new JTextArea();
        JScrollPane jp=new JScrollPane(jta);
        jf.getContentPane().add(jp);
        jf.setSize(400, 300);
        jf.setVisible(true);
    }
}
2)如果是TextArea,使用缺省方式就可以
import java.awt.Frame;
import java.awt.TextArea;

public class TestFrame {

    public static void main(String[] args){
        Frame jf=new Frame();
        TextArea jta=new TextArea();
        jf.add(jta);
        jf.setSize(400, 300);
        jf.setVisible(true);
    }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值