在JTable中显示行号

时间:2013-11-19 07:19:23

标签: java swing jtable rowheader

嗨我有这个jtable,我希望它有自动增量行标题,供用户识别表返回的数据量。我实际上是从结果集中获取表模型,并且数据不是固定的。它取决于用户的搜索。

这是我的表型号代码:

public void retrieveMember() throws SQLException {
     mDao.dbConnect();
        try {

        if(mDao.con!=null)
        {  
   mDao.ps = mDao.con.prepareStatement(this.getSql());
   mDao.rs = mDao.ps.executeQuery();
   this.tblGender.setModel(DbUtils.resultSetToTableModel(mDao.rs));

    int[] columnsWidth = { 100, 150, 150, 300, 50, 60, 100, 100, 125,65};
    int i = 0;
    for (int width : columnsWidth) {
        TableColumn column =this.tblGender.getColumnModel().getColumn(i++);
        column.setMinWidth(width);
        column.setMaxWidth(width);
        column.setPreferredWidth(width);
    }

   } else
        {
              System.out.println("Con is null");
        }

    } catch (SQLException ex) {
        ex.printStackTrace();
        throw ex;


    }
  }

任何人都可以帮我设置自动增量行标题吗?将显示我的表返回的数据量的东西。

            -------------------------
                  Name| Age | Gender
            -------------------------
               1| Nely| 16  |Female
               2| Amy | 18  |Female

提前谢谢。

2 个答案:

答案 0 :(得分:4)

如果无法修改原始表模型,可能是其中一个选项:

我推荐第一个选项。它很简单,可以在很多情况下使用。

答案 1 :(得分:0)

试试这个:

如果为您的表修复了列数,那么您可以使用计数器获取按数据库中的表返回的总行数。

 mDao.rs = mDao.ps.executeQuery();
 int count = 0;

    /** Setting table fields values **/
    if( mDao.rs.next())
        table.setValueAt( mDao.rs.getString("Name"),count,0);
        table.setValueAt(mDao.rs.getInt("Age"),count,1);
        table.setValueAt(mDao.rs.getString("Gender"),count,2);
        count++;
    }

Count将按表格给出记录返回的数字。