如何将值设置为jtable?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将值设置为jtable?相关的知识,希望对你有一定的参考价值。

我的数据库中有两个表(使用mysql workbench),但是我不能同时将这些表中的数据设置为jtable。我该如何解决这个问题? (从两个表或相关字段中获取值并将其设置为jtable)

答案

我的意思是两个结果集?

为什么你有两个ReultSet?您有两种选择:

  1. 更改SQL查询以将数据转换为单个ResultSet
  2. 不要使用DBUtils来创建TableModel

在这种情况下,您需要一次手动地从ResultSet加载数据。

对于第一个ResultSet,您需要为表创建列,然后添加数据行。基本逻辑是:

    Vector<Object> columnNames = new Vector<Object>();
    Vector<Object> data = new Vector<Object>();

    //  Read data from a table

    String sql = "Select * from ???";
    Statement stmt = connection.createStatement();
    ResultSet rs = stmt.executeQuery( sql );
    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();

    //  Get column names

    for (int i = 1; i <= columns; i++)
    {
        columnNames.addElement( md.getColumnName(i) );
    }

    //  Get row data

    while (rs.next())
    {
        Vector<Object> row = new Vector<Object>(columns);

        for (int i = 1; i <= columns; i++)
        {
            row.addElement( rs.getObject(i) );
        }

        data.addElement( row );
    }

    rs.close();
    stmt.close();
    connection.close();
}
catch(Exception e)
{
    System.out.println( e );
}

对于第二个ResultSet,您只需将数据添加到Vector。

然后使用两个向量创建DefaultTableModel,并使用TableModel创建JTable。

以上是关于如何将值设置为jtable?的主要内容,如果未能解决你的问题,请参考以下文章

java中如何把JTable设置为不可编辑

如何将值从一个片段的回收器视图项传递到另一个片段

如何将值从片段/活动传递到 xml?

将值从回收器适配器传递到android中的片段

JTable 单元格渲染器

如何将值从其他活动传递给 viewpager 片段?