如何在 defaulttablemodel 上添加行

Posted

技术标签:

【中文标题】如何在 defaulttablemodel 上添加行【英文标题】:How to add row on defaulttablemodel 【发布时间】:2013-09-29 15:33:13 【问题描述】:

谁能告诉我?我使用结果集从数据库中检索数据并使用rs.getString() 来获取它们..而且我希望这个表在我按下按钮后自动更新..

public void table()

    try

        rs = stat.executeQuery("SELECT * FROM payments;");

        Vector<String> header = new Vector<String>();

        header.add("PAYMENT"); 
        header.add("AMOUNT");
        header.add("MODIFIER");
        header.add("DATE MODIFIED");

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

        while(rs.next()) 

            Vector<Object> row = new Vector<Object>();

            row.add(rs.getString("description"));
            row.add(rs.getString("amount")); 
            row.add(rs.getString("remarks")); 
            row.add(rs.getString("date"));


            dtm.addRow(row);

         // loop

        dtm.setDataVector(data , header);
        JScrollPane scrollPane = new JScrollPane(table);

        scrollPane.setBounds(0,0,490,250);
        panel.add(scrollPane);
        validate();

    catch(Exception e)
        System.out.println("Error in table: "+e);
    //try and catch


【问题讨论】:

dtm 是我的默认表格模型 表格只显示标题而不是行.. 【参考方案1】:

您可以使用data 向量来存储所有结果/行,然后在循环之后使用dtm.setDataVector(data , header);

更改您的代码

dtm.addRow(row);

data.add(row);

基本上,您的代码必须是

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

    while(rs.next()) 

        Vector<Object> row = new Vector<Object>();

        row.add(rs.getString("description"));
        row.add(rs.getString("amount")); 
        row.add(rs.getString("remarks")); 
        row.add(rs.getString("date"));


        data.add(row); // add each result/row to data Vector

     // loop

    dtm.setDataVector(data , header); // load all the table rows to DefaultTableModel

【讨论】:

以上是关于如何在 defaulttablemodel 上添加行的主要内容,如果未能解决你的问题,请参考以下文章

DefaultTableModel addRow方法以格式添加行:column_name = column_value而不是column_value

如何将DefaultTableModel对象的数据放入DefaultTableModel的子类中

如何在 DefaultTableModel/JTable 中合并单元格?

Java在DefaultTableModel上创建监听器

即使查询数据,DefaultTableModel 也是空的

如何隐藏 DefaultTableModel 中的特定列以使其在表中显示?