• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTableの背景色を変更
#navi(../)
*JTableの背景色を変更 [#u3817f74]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-08-02~
更新日:&lastmod;

#contents

**概要 [#z87d4b66]
JTableを追加したJViewportがセルで隠れていない部分の色を変更します。

http://terai.xrea.jp/swing/tablebackground/screenshot.png
#screenshot

**サンプルコード [#l5c8f8e1]
 scroll.getViewport().add(jtable);
 scroll.getViewport().setOpaque(true);
 scroll.getViewport().setBackground(Color.white);
 //jtable.getParent().setBackground(Color.white);

-[[サンプルを起動>http://terai.xrea.jp/swing/tablebackground/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/tablebackground/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/tablebackground/src.zip]]
-&jnlp;
-&jar;
-&zip;

**解説 [#q0eb6822]
このページのタイトルなどでJTableの背景色といっている部分は、実際はJTableの背景色ではなく、JTableを追加したJViewportがセルで隠れていない部分のことです。

このため、上記のスクリーンショットのように色をつけたい場合は、JTable自身の背景色を設定するのではなく、JViewportの背景色を設定する必要があります。サンプルコードではJScrollPaneからJViewportを取得していますが、JTable.getParent()してもJViewportを取得することができます。

上記のサンプルでは、背景色を不透明にするを選択して背景色を設定してやると、JViewportの背景色が変更されます。

セルの背景色を変更する場合は、TableCellRendererを使用([[TableCellRendererでセルの背景色を変更>Swing/StripeTable]])します。

**参考リンク [#ab7ac14b]
-[[TableCellRendererでセルの背景色を変更>Swing/StripeTable]]

**コメント [#d3f3a4d2]
#comment