如何在使用DbUtils.resultSetToTableModel填充数据后向JTable添加行?

时间:2015-04-01 06:05:53

标签: java mysql swing jtable jframe

我有一个以这种方式定义的JTable:

public JTable table_1;
model_3 = new DefaultTableModel(); 
table_1 = new JTable(model_3);  
scrollPane_5.setViewportView(table_1);

添加行:

model_3.addRow(new Object[]{table.getValueAt(row,0) , table.getValueAt(row,1) ,table.getValueAt(row,2) , commentFood });

删除行:

model_3.removeRow(row);  //row is an integer

直到这里,它过去才能正常工作。正如您所看到的,此表被定义为public,因为有时我需要以这种方式从另一个JFrame中填充它:

takeOrder to = new takeOrder();
//Get data from DB to resultSet
to.table_1.setModel(DbUtils.resultSetToTableModel(resultSet));

如果我以这种方式填写表格并尝试添加或删除我的model_3,则无效! DbUtils.resultSetToTableModel(resultSet)后如何添加或删除表格的任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

由于我无法在互联网上找到任何信息,我看到有几个人问了同样的问题而没有回答。我提出了这个解决方案:

if (formOut) {
    for (int i = 0; i < table_1.getRowCount(); i++) {
        model_3.addRow(new Object[]{table_1.getValueAt(i,0), 
            table_1.getValueAt(i, 1), table_1.getValueAt(i, 2)});
    }
}

formOut = false;
table_1.setModel(model_3);

fromOut是一个布尔值,用于检查我是否为我的表使用了另一个模型。如果是这样,我将表中的数据添加到以前的模型,然后我将该模型引用到我的表中。现在我也可以添加到该模型中。