请帮助在java中的jtable中自动更新值

时间:2014-05-01 12:34:50

标签: java arrays swing jtable auto-update

您是否可以提供有关jtable如何在jtable中的单元格内的复选框中自动更新的任何建议,而无需使用"更新按钮"在java?我有一个代码,将用于工资单示例。它通过乘以第7行和第8行中的值来计算金额。第3到第6行有复选框。第7行加上" true"从第3行到第6行的值。你能就这个方法提出任何建议吗?请帮忙吗?

private void tableTest(){
        int nRow = sampleTable.getRowCount();
        int nCol = sampleTable.getColumnCount();
        int counter = 0;
        System.out.println(nRow);
        System.out.println(nCol);
        Object[][] tableData = new Object[nRow][nCol];

        for (int i = 0 ; i < nRow ; i++){
            for (int j = 3 ; j <= 6 ; j++){
                tableData[i][j] = sampleTable.getValueAt(i,j);
                System.out.println(" " + i + " " + j + " " + tableData[i][j]);
                if(tableData[i][j] != null && tableData[i][j].equals(true)){
                    counter++;
                }
            }
           System.out.println(counter);
           sampleTable.setValueAt(counter,i,7);
           counter = 0;
           Integer a = (Integer) sampleTable.getValueAt(i,7);
           Double d =(Double) sampleTable.getValueAt(i,8);

           Double product = a*d;
           sampleTable.setValueAt(product,i,9);
        }
    }

1 个答案:

答案 0 :(得分:0)

在setValueAt之后,您需要调用表模型的fireTableCellUpdated(row,col)方法。

  

public void fireTableCellUpdated(int row,                           int column)通知所有侦听器[row,column]的单元格值已更新。参数:行 -   已更新列的单元格行 - 具有的单元格列   已更新

请参阅javadoc