嗨我有这个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
提前谢谢。
答案 0 :(得分:4)
如果无法修改原始表模型,可能是其中一个选项:
您可以根据http://www.javarichclient.com/display-line-numbers-jtable/或http://tips4java.wordpress.com/2008/11/18/row-number-table/上的示例创建自定义行标题视图。
您可以创建一个新的TableModel,它包装您现有的TableModel并添加一个包含行号的列。
您可以在查询中选择行号,并将其作为结果集的一部分。
我推荐第一个选项。它很简单,可以在很多情况下使用。
答案 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将按表格给出记录返回的数字。