0

私の UI では、TableModel で JTable を使用しています。実装された Observer インターフェイスの update メソッドで、repaint メソッドを呼び出しています。タブを介して(再描画の代わりに別のメソッドを呼び出します)

これは update メソッドのコードです。

 public void update(Observable o, Object arg) {
        ((MyTableModel)table_.getModel()).addTableRow(row);

    //addTable(row) adds the  row to the dataVector that populates the JTable
    //the dataVector is updated with added row

            table_.repaint();

            }

JTable が更新されない理由を知りたかったのですが、注意してください -> データ ベクトルには、追加された行を含む必要な行があります。

4

1 に答える 1

4

メソッドは、行が追加されたことを示すイベントを発生させて、この変更addTableRowを警告する必要もあります。それなら電話JTableは不要です。repaint

たとえば、 のaddRowメソッドの実装を見てみましょうDefaultTableModel

public void insertRow(int row, Vector rowData) {
    dataVector.insertElementAt(rowData, row);
    justifyRows(row, row+1);
    fireTableRowsInserted(row, row);
}

イベントが発生し、再描画が不要であることがはっきりとわかります。これはすべて、チュートリアルで詳しく説明されていますJTable

于 2012-07-24T05:34:01.080 に答える