- ベストアンサー
JTableの特定セルの背景色を変更
現在swingを勉強中です。 よろしくお願いします。 JTableで例えば、ある列の値が 1行目:10~100 2行目:20~40 3行目:80~120 4行目:150~200 のような範囲を持った値のとき、 範囲が重なっている1行目から3行目のセルの背景色を変更したいのですが、可能でしょうか。 おそらくTableCellRender等を使用するのかとは思うのですが…
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >範囲が重なっている1行目から3行目のセルの背景色を >変更したいのですが、可能でしょうか。 可能です。 ただし、JTableの内部構造をある程度知っておく必要があります。 JTableやJListは、描画方法がやや変わっています。 たとえば、JTabelのディフォルトのTableCellRendererは、DefaultTableCellRendererですが、これは、JLabelを継承して作られているので、実質はJLabelです。 しかし、10×10の表があった場合、100個のJLabelのインスタンスがあるわけではありません。 DefaultTableCellRendererのインスタンスは一つで、それを描画時にポンポンとハンコのように押していくことで、描画していきます。 それを実現しているのが、getTableCellRendererComponentメソッドです。 ぜひ、DefaultTableCellRendererのソースコードを読んでみてください。 ここを理解できれば、あとは、DefaultTableCellRendererを継承し、getTableCellRendererComponentメソッドをオーバーライドして、自分の意に沿うRendererを実装することはたやすいと思います。
お礼
お早い回答ありがとうございます。 >ぜひ、DefaultTableCellRendererのソースコードを読んでみてください。 そうですね。 まずは、ソースを読んで理解してみようと思います。 とりあえずは、目的のことができそうなので安心しました。 また、何かありましたらよろしくお願いいたします。