我对此JTable有问题。我这样编辑一个单元格



然后我按Enter提交更改。在这里,我希望表gui用新值刷新。



但它们不显示,仅在我更改选择时显示



当编辑单元格时,在fireTableCellUpdated( inRow, inCol );中,tableModel是方法调用。

我不确定在将fireTableCellUpdated刷新到jtable以便重新绘制和重新验证时是否必须将侦听器添加到tableModel中。

一些代码:

这在tableModel中调用。

@Override
public void setValueAt( Object inValue, int inRow, int inCol ) {
    ProductRow productRow = (ProductRow)( getRowsData().get(inRow) );

    //more code
    productRow.setCantidad( inValue.toString() );  // when this is called all properties are updated from ProductRow
    fireTableCellUpdated( inRow, inCol );
}

最佳答案

如果更改特定单元格会更新同一行中的其他单元格(假设这就是您要执行的操作),则您的last attempt in your answer使用正确的方法,只是参数不正确:-)

@Override
public void setValueAt( Object inValue, int inRow, int inCol ) {
    ProductRow productRow = (ProductRow)( getRowsData().get(inRow) );
    // when this is called all properties of productRow are changed.
    productRow.setCantidad( inValue.toString() );
    // note: both parameters are _row_ coordinates
    fireTableRowsUpdated(inRow, inRow);
}

07-24 22:33