Java将0打印到JTable中的空单元格

Java将0打印到JTable中的空单元格,java,printing,jtable,cell,Java,Printing,Jtable,Cell,在JavaJTable中,我正在将打印0的代码写入空单元格: for (int i8 = 0; i8 < tgelir.getRowCount(); i8++) { if (dtmgelir.getValueAt(i8, 1) == null) { dtmgelir.setValueAt(0, i8, 1); } else { ... } } for(int i8=0;i8

在Java
JTable
中,我正在将打印0的代码写入空单元格:

for (int i8 = 0; i8 < tgelir.getRowCount(); i8++) {
    if (dtmgelir.getValueAt(i8, 1) == null) {
        dtmgelir.setValueAt(0, i8, 1);
    } else {
        ...
    }
}
for(int i8=0;i8
tgelir
是一个
JTable
dtmgelir
是一个
DefaultTableModel


当我向单元格中写入一个数字时,其他单元格将变为0。但是,当我删除单元格中的0并写入一个数字时,我先前写入的数字将变为0。

您需要使用两个循环,以循环方式逐行抛出所有单元格,如下所示:

//get rows and columns of your JTable
int nRow = yourtable.getRowCount(), nCol = yourtable.getColumnCount();

//Loop row by row
for (int i = 0; i < nRow; i++) {
    //each row loop its columns 
    for (int j = 0; j < nCol; j++) {
        //check if your value is not empty or null then change to 0
        if (yourtable.getValueAt(i, j).equals("") || yourtable.getValueAt(i, j) == null) {
            yourtable.setValueAt(0, i, j);
        }
    }
}
//获取JTable的行和列
int nRow=yourtable.getRowCount(),nCol=yourtable.getColumnCount();
//逐行循环
对于(int i=0;i

希望这能对您有所帮助。

您多久调用一次这部分代码?只有一次?再给我们一些代码;)我的猜测是,在单元格中写入数字不会更新JTable,出于某种原因,它仍然会将值读取为“null”,并将其设置为0。调用此代码多少次并不重要,因为在第一次调用后,该值不应再为null