java swing中Jtable+JScrollpane实现自动滚动到底部——测试真实有效
来源:互联网 发布:怎样禁止下载软件 编辑:程序博客网 时间:2024/05/02 00:48
本人在实现一个聊天程序时使用到了Jtable+JScrollpane的方式,但是发现来了条消息时,不会自动滚动到底部,在网上找了很多方法,那些大家都说可以得方法我试了下就是不行,后来在http://www.oschina.net/question/4873_23262上看到一种方法,试了下完美解决,感谢这位童鞋。花了好久时间 ,终于解决了。我这里总结下:
1.前面那些方法中所以没用的原因是因为,当table新加了一行后,JScrollpane自身有一个自动调整的过程,如果这个时候去设置滚动到底部,滚动条不能完全滚动到底部。
2.解决思路:当滚动条自动调整完毕后在去设置它滚动到底部。监听滚动条的调整事件addAdjustmentListener
3.解决方法:scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent evt) {
if(evt.getAdjustmentType() == AdjustmentEvent.TRACK && isNeedBottom <= 3) {
scrollPane.getVerticalScrollBar().setValue(scrollPane.getVerticalScrollBar().getModel().getMaximum() - scrollPane.getVerticalScrollBar().getModel().getExtent());
isNeedBottom++;
}
}
});
上面之所以用到了一个全局变量isNeedBottom 是因为滚动条自动调整会执行2到3次,不会超过3次(原因不明)。每次网table新增加一行后把isNeedBottom设置为0即可。
- java swing中Jtable+JScrollpane实现自动滚动到底部——测试真实有效
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- JScrollPane实现自动滚动到底部
- Java Swing-JScrollPane,JTable
- Swing中,实现JTextArea自动滚动到文字底部
- Swing:在JScrollPane(JTextArea)中增加内容时,滚动条自动滚至底部
- JScrollPane 自动跟进 自动到滚动到最底部
- JscrollPane控制滚动条自动滚到底部
- 实现 JScrollPane 自动滚动
- 博为峰Java技术文章 ——JavaSE Swing JScrollPane滚动条容器I
- Java从入门到精通 - Swing表格JTable支持滚动
- Java从入门到精通 - Swing表格JTable不滚动
- Python语法基础——关于全局变量与局部变量
- web项目乱码问题
- Druid连接池及监控在Spring配置如下:
- Markdown学习
- 不同编译器的类型字节
- java swing中Jtable+JScrollpane实现自动滚动到底部——测试真实有效
- grep -Ev和grep -v区别
- 日光倾城
- 自定义String
- JSONKIT导入
- 【转载】今天心情非常好,再发一组 Linq、 集合、数组、Lambda、QuerySyntax 的文章
- Java并发编程:Timer和TimerTask(转载)
- 你不知道的JavaScript--Item35 事件流与事件处理
- tomcat配置虚拟目录后出现404的解决方法