您是否可以提供有关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);
}
}
答案 0 :(得分:0)
在setValueAt之后,您需要调用表模型的fireTableCellUpdated(row,col)方法。
public void fireTableCellUpdated(int row, int column)通知所有侦听器[row,column]的单元格值已更新。参数:行 - 已更新列的单元格行 - 具有的单元格列 已更新
请参阅javadoc