tetou 发表于 2016-2-8 18:04:00

JScrollPane + JTable 自动滚动到最底部

      第一次使用JScrollPane+JTable的时候就碰到了这个常见的问题:如何让表格自动滚动到最底部?我的实现代码如下,当需要向表格中添加数据的时候,调用此代码段:

      int rowCount=mTab.getRowCount();
      mTab.getSelectionModel().setSelectionInterval(rowCount-1,rowCount-1);
      Rectangle rect=mTab.getCellRect(rowCount-1,0,true);
      mTab.updateUI();
      mTab.scrollRectToVisible(rect);
注意:
1)语句mTab.updateUI()必须放在mTab.scrollRectToVisible(rect)之前。
2)上述第二和第三行语句中,如果使用rowCount作为参数,那么在向下滚动的时候没有选中的效果。这种效果在某些场合可能会更好看点。

说明:
1)mTab和mBar是类的成员变量,如下所示:
    private DefaultTableModel mTabModel;
    private JTable mTab;
    private JScrollPane mPane;
2)mTab和mBar的初始化在构造方法中实现,如下所示:
    String[] clmnNames={"Task","SubTask","Result","Information"};
    mTabModel=new DefaultTableModel(clmnNames,1);
    mTabModel.removeRow(0);
    mTab=new JTable(mTabModel);
    mPane=new JScrollPane(mTab);
3)此段代码参考自如下链接:
http://blog.csdn.net/dancen/article/details/7379847

程序运行效果图:


转自:http://blog.163.com/ljf_gzhu/blog/static/13155344020121052020611/


页: [1]
查看完整版本: JScrollPane + JTable 自动滚动到最底部