JAVA滚动条自动下滑到底部


JTextArea chat;
JScrollPane scollPanel;
JScrollBar jsb;




我喜欢的方法是:

chat.selectAll();//显示在最后一行



官方方法是:


jsb=scollPanel.getVerticalScrollBar();//
 jsb.setValue(jsb.getMaximum());//




以下内容为转载



为了在聊天软件中实现把最新的记录明显的显示出来的功能,我想让滚动条自动的滚动到JTextArea的最后,但是找了很久都没找到合适的方法。曾经想在JScrollBar上做做文章,但是很可惜找不到出路。
    后来发现了几个方法,虽然有投机取巧的嫌疑,但是思路很灵活,拿出来和大家共享。
(1)JTextArea.selectAll();
(2)JTextArea.setCaretPosition(JTextArea.getText().length());
(3)JScrollPane.getViewport().add(JTextArea,null);
     Point p = new Point();
     p.setLocation(0,JTextArea,getLineCount() * int);
     JScrollPane.getViewprot.setViewPosition(p);

说明:1)(1)(2)两种方法都是强制将光标移动到JTextArea中文字部分的末尾,而且两者都是在JTextArea的父类JTextComponent中定义的方法。孰优孰劣暂时看不出来,不过猫猫使用的是第一种,因为需要敲的字符数少。
     2)(3)虽然麻烦但是属于学院派的用法,完全不会给人投机取巧的感觉。
     3)三种方法都必须在JTextArea中添加了新内容后再调用,不能先调用此方法再添加内容,那样不会有任何效果。也就是说,此三种方法不是静态的设置 属性,而是对属性的一种动态的修改,一次修改只能在当时这一次操作中有效,必须在每次修改属性所关联的内容后再修改才有用。
     4)三种方法在JDK1.5.0_02下测试正确。其他环境下调试出现异常请酌情处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值