Java 在JTable中显示行号
您好,我有一个jtable,我希望它有一个自动递增的行标题,以便用户识别表返回了多少数据。我实际上是从结果集中得到表模型,数据不是固定的。这取决于用户的搜索 以下是我的表格模型代码:Java 在JTable中显示行号,java,swing,jtable,rowheader,Java,Swing,Jtable,Rowheader,您好,我有一个jtable,我希望它有一个自动递增的行标题,以便用户识别表返回了多少数据。我实际上是从结果集中得到表模型,数据不是固定的。这取决于用户的搜索 以下是我的表格模型代码: public void retrieveMember() throws SQLException { mDao.dbConnect(); try { if(mDao.con!=null) { mDao.ps = mDao.con.prepareS
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
提前感谢您。如果无法修改原始表格模型,请选择以下选项之一:
- 您可以创建自定义行标题视图,如或中的示例所示
- 您可以创建一个新的TableModel,它包装现有的TableModel并添加一个包含行号的列
- 您可以在查询中选择行号,并将其作为结果集的一部分
我推荐第一种选择。它很简单,可以在许多情况下使用。如果无法修改原始表格模型,可能是以下选项之一:
- 您可以创建自定义行标题视图,如或中的示例所示
- 您可以创建一个新的TableModel,它包装现有的TableModel并添加一个包含行号的列
- 您可以在查询中选择行号,并将其作为结果集的一部分
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将给出按表返回的记录数。尝试以下操作:
如果表的列数是固定的,则可以使用计数器获取数据库中表返回的行总数
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将给出按表返回的记录数。在
DbUtils.resultsetTableModel中需要的更改
如果您想要一个行号列,请签出此组件在DbUtils.resultsetTableModel中需要的更改
如果您想要一个行号列,请签出此组件,我将如何附加行我的程序中的头代码?你能举个例子吗?我不知道从哪里开始。不管怎样,我只是把桌子从秋千上拖下来。我没有像Jtable-tblGender=new-Jtable那样手动编写它。因此,我不知道要修改什么这些示例包括通过调用封闭的JScrollPane
上的setRowHeaderView
将行标题附加到现有JTable
的代码。我不知道您使用的是什么IDE/GUI编辑器,但请看一下它生成的代码。如果在那里插入您自己的代码,大多数GUI编辑器都不会有问题(例如,在Eclipse w/WindowBuilder中,您只需将代码添加到生成的GUI类中,编辑器就不会阻塞)。我使用的是Netbeans,这里没有setRowHeaderView。我在JScrollPane中找到了setRowHeaderView。我可以在这里放置什么来生成自动编号行标题?我不确定还可以告诉您什么。这些例子非常清楚。将相关的行标题类添加到源代码中,然后通过在生成的代码中调用JScrollPane
上的setRowHeaderView
来安装它们。如果您没有滚动窗格,请添加一个滚动窗格并将表格放入其中。没什么了。我该如何在程序中附加行标题代码?你能举个例子吗?我不知道从哪里开始。不管怎样,我只是把桌子从秋千上拖下来。我没有像Jtable-tblGender=new-Jtable那样手动编写它。因此,我不知道要修改什么这些示例包括通过调用封闭的JScrollPane
上的setRowHeaderView
将行标题附加到现有JTable
的代码。我不知道您使用的是什么IDE/GUI编辑器,但请看一下它生成的代码。如果在那里插入您自己的代码,大多数GUI编辑器都不会有问题(例如,在Eclipse w/WindowBuilder中,您只需将代码添加到生成的GUI类中,编辑器就不会阻塞)。我使用的是Netbeans,这里没有setRowHeaderView。我在JScrollPane中找到了setRowHeaderView。我可以在这里放置什么来生成自动编号行标题?我不确定还可以告诉您什么。这些例子非常清楚。将相关的行标题类添加到源代码中,然后通过在生成的代码中调用JScrollPane
上的setRowHeaderView
来安装它们。如果您没有滚动窗格,请添加一个滚动窗格并将表格放入其中。没有太多了。即使在返回数据时使用sql语句,我也可以使用该代码吗?即使在返回数据时使用sql语句,我也可以使用该代码吗?