更新现有JTable行而不是添加

时间:2016-06-27 22:19:58

标签: java swing jtable tablemodel

我为Swing缺乏背景而道歉,但我带着一个JTable问题来到这里。我的表格结构如下:

跨越12列,行数取决于传入的数据。

我想知道是否有办法获取第一列的数据(Col1)并检查表中是否存在该值,如果是,则在必要时更新该行的其余11列,并且如果没有将它添加到表中。

这是我的GUI类的片段

public class ShowGUI extends JFrame {
String [] colNames = new String[] {"Col1", "Col2" "Col3","Col4","Col5","Col6", "Col7", "Col8", "Col9", "Col10", "Col11", "Col12"};
public showGUI() {
PublicTransportation example = new Public Transportation();
example.getRouteTaken();

List<Object> routeList = example.getList();
final Object[][] rowData = new Object[routeList.size() / colNames.length][colNames.length];
    for (int i = 0; i < rowData.length; i++) {
        for (int j = 0; j < rowData[i].length; j++) {
            rowData[i][j] = routeList.get( i * colNames.length + j);
    }
}

DefaulTableModel myModel = new DefaultTableModel(rowData, colNames);
final JTable table = new JTable(myModel);
table.setAutoCreateColumnsFromModel(true);

// JFrame, JPanel
    }
}

按照目前的情况,我的表显示所有行,当然,不会重复。我已经研究了Hashing专栏,但是我在实现它时遇到了麻烦。有没有人有任何建议?

编辑:当我从Public Transportation类接收来自getRouteTaken方法的数据时,我想在表上显示数据。我需要调用此方法来填充表。如果表中不存在第一列的第一个值,则将插入新行。如果该值已经存在,那么我想检查该特定行的其余列的任何值是否已针对先前状态进行了更改。如果是这样,我想更新它们。

示例:

Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 Col11 Col12

data1 data2 data3 data4 data5 data6 data7 data8 data9 data10 data11 data12

如果表中已存在data1的值,则检查数据值2-12是否已更改。如果是,请更新它们。如果data1的值不存在,则添加一个全新的行。

提前谢谢你。

0 个答案:

没有答案