【问题标题】:Displaying row numbers in JTable在 JTable 中显示行号
【发布时间】:2013-11-19 07:19:22
【问题描述】:

您好,我有这个 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

提前谢谢你。

【问题讨论】:

标签: java swing jtable rowheader


【解决方案1】:

如果无法修改原始表模型,则可能是以下选项之一:

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

【讨论】:

  • 如何在我的程序中附加行标题代码?你能举一些例子吗?我不知道从哪里开始。不管怎样,我只是把桌子从秋千上拖了下来。我没有像 Jtable tblGender = new JTable 那样手动编码。所以我不知道要修改什么
  • 这些示例包括通过在封闭的JScrollPane 上调用setRowHeaderView 将行标题附加到现有JTable 的代码。我不知道您使用的是什么 IDE/GUI 编辑器,但请看一下它生成的代码。如果在其中插入您自己的代码,大多数 GUI 编辑器都不会出现问题(例如,在带有 WindowBuilder 的 Eclipse 中,您只需将代码添加到生成的 GUI 类中,编辑器就不会卡住它)。
  • 我用的是Netbeans,这里没有setRowHeaderView。
  • 我在 JScrollPane 中找到了 setRowHeaderView。我可以在这里放什么来生成自动编号行标题?
  • 我不知道还能告诉你什么。这些例子非常清楚。将相关的行标题类添加到您的源代码中,然后通过在生成的代码中在 JScrollPane 上调用 setRowHeaderView 来安装它们。如果您没有滚动窗格,请添加一个并将您的表格放入其中。没有更多的了。
【解决方案2】:

试试这个:

如果您的表的列数是固定的,那么您可以使用计数器来获取数据库中表返回的总行数。

 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 将给出按表返回的记录数。

【讨论】:

  • 即使我使用sql语句返回数据,我也可以使用该代码吗?
猜你喜欢
  • 2014-10-07
  • 1970-01-01
  • 2012-10-29
  • 2012-02-06
  • 1970-01-01
  • 2012-02-20
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多