これは、テーブルが最初にレンダリングされたときに発生しますが、fireTableCellUpdatedまたはその他の「fire *」メソッドのいずれかが呼び出されると、すべてのセルで呼び出される必要があります。私は、AbstractTableModel(DefaultTableModel?)を拡張するクラスを使用しているという印象を受けています。その時点で、テーブルモデルの特定の値を更新するときにこれらのメソッドを起動する必要があります。
カスタムセルレンダラの使用例は、Example Depotにあります。 getTableCellRendererComponentは、セルが表示されるとき、およびモデル更新が発生したときに呼び出されます。
補足:私はちょうどあなたの質問に他の部分を気付いた、getTableCellRendererComponentはいつ呼び出されましたか?これは、レンダリングが必要なテーブル内のすべての可視セルに対して呼び出されます。このように考えると、JLabelをレンダラーとして内部的に使用している場合、そのセルのみを表示するように設定されたJLabelを返します。それはそれをレンダリングするために次のセルで再利用されます。それを考える最も簡単な方法は、あなたのセルを見た目にして、それをgetTableCellRendererComponent呼び出しで設定し、それを返すようにする視覚的なテンプレートです。呼び出し元のフレームワークは、「イメージ」(より良い用語がないため)としてスクリーンバッファにレンダリングし、次のセルのために再構成され、再びレンダリングされます。
DefaultTableModelは、適切なレンダラーをテーブルで使用できるようにデータのクラスを指定する以外のレンダリングには関係ありません。各セルにデフォルトのレンダラーはありません。 TableModelでセルの色を指定することはできません。 – camickr
-1完全に間違った最初のセンテンス(「いつ」に応答する)、もう1つはモデルを誤って再生する(Robは既に述べた通り)。レンダラの特定の実装に設定を繋ぐ-1/2 (いずれのコンポーネントも行います)。 – kleopatra
@Camickr - 私は間違ってDefaultTableColumnModelの代わりにDefaultTableModelについて言及してくれたことを申し訳なく思っています。私はそれらを修正するために自分の投稿を編集しました。 @kleopatra - – raksja