タブの背景色を設定する

広告

タブの背景色を設定します。TabbedPaneクラスで用意されている「setBackgroundAt」メソッドを使います。

index のバックグラウンドカラーを background に設定します。 null にする
こともできますが、その場合、タブのバックグラウンドカラーは tabbedpane 
のデフォルトのバックグラウンドカラーに設定されます。そのインデックスに
タブがない場合は内部例外がスローされます。

パラメータ:
  index - バックグラウンドを設定するタブのインデックス
  background - タブのバックグラウンドに表示される色
例外: 
  IndexOutOfBoundsException - インデックスが範囲外の場合
    (index < 0 || index >= タブの総数)

1番目の引数に前景色を設定したいタブのインデックスを指定します。インデックスはタブが追加された順に割り振られた番号で最初のタブのインデックスは「0」となります。存在しないインデックスを指定すると例外が発生します。

2番目の引数には背景色として指定したいColorクラスのオブジェクトを指定します。Colorクラスについては『Colorクラス』を参照して下さい。

実際の使い方は次のようになります。

JTabbedPane tabbedpane = new JTabbedPane();
tabbedpane.addTab("title1", new JButton("button1"));

tabbedpane.setBackgroundAt(0, Color.RED);

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JTabbedPaneTest7.java

import javax.swing.*;
import java.awt.Color;
import java.awt.BorderLayout;

public class JTabbedPaneTest7 extends JFrame{

  public static void main(String[] args){
    JTabbedPaneTest7 frame = new JTabbedPaneTest7();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JTabbedPaneTest7(){
    JTabbedPane tabbedpane = new JTabbedPane();

    JPanel tabPanel1 = new JPanel();
    tabPanel1.add(new JButton("button1"));

    JPanel tabPanel2 = new JPanel();
    tabPanel2.add(new JLabel("Name:"));
    tabPanel2.add(new JTextField("", 10));

    JPanel tabPanel3 = new JPanel();
    tabPanel3.add(new JButton("button2"));

    tabbedpane.addTab("tab1", tabPanel1);
    tabbedpane.addTab("tab2", tabPanel2);
    tabbedpane.addTab("tab3", tabPanel3);

    tabbedpane.setBackgroundAt(0, Color.WHITE);
    tabbedpane.setForegroundAt(1, Color.WHITE);
    tabbedpane.setBackgroundAt(1, Color.BLACK);
    tabbedpane.setBackgroundAt(2, Color.GREEN);

    getContentPane().add(tabbedpane, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JTabbedPaneで背景色を設定する

1番目のタブの背景色は設定した背景色に変わっていませんが、タブが選択されている時はデフォルトの背景色が設定されているためです。別のタブをクリックしてもらえば1番目のタブの背景色が設定されていることが分かります。

JTabbedPaneで背景色を設定する

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)