JTableの背景色を変更

編集者:Terai Atsuhiro
作成日:2004-08-02
更新日:2022-06-11 (土) 15:35:15

概要

JTableを追加したJViewportがセルで隠れていない部分の色を変更します。

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

サンプルコード

scroll.getViewport().add(jtable);
scroll.getViewport().setOpaque(true);
scroll.getViewport().setBackground(Color.white);
//jtable.getParent().setBackground(Color.white);

解説

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

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

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

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

参考リンク

コメント