java jtextarea滚动条下滑,JTextArea更新时滚动条自动在最上面或者在最下面的方法...

我要在JTextArea里面显示日志,内容动态更新,加个滚动条,发现一直在上面不动,查了很多资料,有几种方法(这里就不举出来了),照搬下来没效果。//最上面

logText.setCaretPosition(0);

//最下面

logText.setCaretPosition(logText.getText().length());

先解释一下上面一句代码的作用,caret postion的意思是光标位置,那这句代码的作用就是显示JTextArea的最下面一行。

但是我的JTextArea是动态更新的,这就需要在JTextArea内容更新的监听器里面作文章了,我的代码如下:final JTextArea logText = new JTextArea();

logText.setSize(new Dimension(610,400));

logText.setBackground(Color.white);

logText.setLineWrap(true);

logText.setMargin(new Insets(5,5,10,10));

logText.getDocument().addDocumentListener(new DocumentListener(){

@Override

public void changedUpdate(DocumentEvent e) {

// TODO Auto-generated method stub

}

@Override

public void insertUpdate(DocumentEvent e) {

// TODO Auto-generated method stub

logText.setCaretPosition(logText.getText().length());

}

@Override

public void removeUpdate(DocumentEvent e) {

// TODO Auto-generated method stub

}

});

//添加滚动条

JScrollPane scroll = new JScrollPane(logText);

scroll.setSize(new Dimension(610,395));

contentPanel.add(scroll);

每次新增内容的时候,就显示JTextArea最后一行。至于JTextArea的内容监听器就是它的Document对象的DocumentListener。

-----------------------------------------------------

转载请注明来源此处

原地址:#

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值