Java JTable 更新行

标签 java swing jtable

我正在创建一个像这样的 JTable:

           String[] colName = new String[] {
               "ID#", "Country", "Name", "Page titel", "Page URL", "Time"
           };
           Object[][] products = new Object[][] {
               {
                   "123", "USA", "Bill", "Start", "http://www.url.com", "00:04:23"
               },

               {
                   "55", "USA", "Bill", "Start", "http://www.url.com", "00:04:23"
               }

           };

           dtm = new DefaultTableModel(products, colName);
           table = new JTable(dtm);

我如何通过 ID 更新行?我想更新 ID 等于 55 的整行。

编辑:我知道如何按行 ID 删除,但我实际上如何更新单元格?

  public void removeVisitorFromTable(String visitorID) {
    int row = -1; //index of row or -1 if not found

    //search for the row based on the ID in the first column
    for(int i=0;i<dtm.getRowCount();++i)
        if(dtm.getValueAt(i, 0).equals(visitorID)) {
            row = i;
            break;
        }

    if(row != -1) {
        dtm.removeRow(row);//remove row
    } else {

    }
}

最佳答案

您可以使用 DefaultTableModel#setValueAt(java.lang.Object, int, int)

DefaultTableModel#setDataVector(java.util.Vector, java.util.Vector)

编辑:

例子:

private void updateRow(String visitorID, String[] data) {
    if (data.length > 5)
        throw new IllegalArgumentException("data[] is to long");
    for (int i = 0; i < dtm.getRowCount(); i++)
        if (dtm.getValueAt(i, 0).equals(visitorID))
            for (int j = 1; j < data.length+1; j++)
                dtm.setValueAt(data[j-1], i, j);
}

关于Java JTable 更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618436/

相关文章:

java - 返回与传入参数相同的 List 实现

javascript - Postman 测试顺利,但 ajax 出错 "Required request body is missing"

java - JAVA 中的 SELECT 语句

javascript - Jtable 中的列不显示

java - JTable中的JProgressBar问题

Java找不到类项目的符号

java - 在获得焦点时开始在 JTable 中的单元格中进行编辑

java - JPanel闪烁问题

java - 从文件中读取数据并将数据放入 JTable

java - Android Flavors - 无法解析符号 R