1

を押したgetvalueAt()ときに古いデータを選択する理由を知りたいです。 すべての更新モジュールとテーブル変更モジュールを試しましたが、機能しませんでした。で Excel シートのような構造を作成しています。この構造では、1 つの行が別の行に変更されると更新されます。Enter
JTable

public void setValueAt(Object aValue, int row, int column) {
        if(column == 2 || column == 3 || column == 4 || column == 5)
    {
        System.out.println("2 is: "+getValueAt(row, 2));
        System.out.println("3 is: "+getValueAt(row, 3));
        System.out.println("4 is: "+getValueAt(row, 4));
        long closingbalance = Long.parseLong(getValueAt(row,2).toString())
            + Long.parseLong(getValueAt(row,3).toString())
            - Long.parseLong(getValueAt(row,4).toString());
        System.out.println("closing: "+closingbalance);
        super.setValueAt(closingbalance,row, 6);
    }               
    super.setValueAt(aValue, row, column);
}
4

2 に答える 2

1

あなたが他の値にアクセスするとき、あなたCellEditorが結論を出し、あなたが一貫した状態にあることを確認してください。TableModelこののオーバーライドgetValueAt()は、依存セルの値を導出します。多くの解析を避けるために、TableModelおそらくLong.

本当にオーバーライドする必要があると仮定するとsetValueAt()、何を使用しているかは明確ではありませんTableModel。を拡張している場合DefaultTableModelsuper.setValueAt()実装は適切です。を拡張している場合AbstractTableModel、スーパー実装は空であり、適切なイベントを発生させる必要があります。

于 2012-03-30T01:37:26.720 に答える
1

別のフォーラムであなたの質問に答えることができません。新しいバージョンのフォーラムが私を夢中にさせているからです。

  • から値を解析する理由はありませんJTable

  • JTableすべての重要なデータ型を実装します

  • hereまたはhere

  • SSCCEで質問を編集するのに役立ちます

于 2012-03-30T07:28:38.660 に答える