表示方法の変更(前景色と背景色)

広告

選択した項目の前景色と背景色を変更します。それぞれJListクラスで定義されている"setSelectionForeground"メソッドと"setSelectionBackground"メソッドを使います。

setSelectionForegroundメソッド

選択されたセルのフォアグラウンドカラーを設定します。セルレンダリングは
この色を使用して、選択されたセルのテキストとグラフィックスを描画します。 

このプロパティのデフォルト値は、Look & Feel の実装によって定義されます。 

パラメータ:
  selectionForeground - 選択されたリスト項目のフォアグラウンドで使用する
    Color

setSelectionBackgroundメソッド

選択されたセルのバックグラウンドカラーを設定します。セルレンダリングは
この色を使用して、選択されたセルを塗りつぶすことができます。 

このプロパティのデフォルト値は、Look & Feel の実装によって定義されます。 

パラメータ:
  selectionBackground - 選択されたセルのバックグラウンドで使用する
    Color

どちらのメソッドも色としてColorクラスのオブジェクトを指定します。下記のサンプルでは、選択項目の前景色を赤に、背景色を黒に変更してみます。

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

public class JListSample extends JFrame{

  protected JList list;

  public static void main(String[] args){
    JListSample test = new JListSample("JListSample");

    /* 終了処理を変更 */
    test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    test.setBounds( 10, 10, 250, 150);
    test.setVisible(true);
  }

  JListSample(String title){
    setTitle(title);

    /* JListの初期データ */
    String[] initData = {"Blue", "Green", "Red", "Whit", "Black"};
    list = new JList(initData);

    /* 前景色と背景色の変更 */
    list.setSelectionForeground(Color.red);
    list.setSelectionBackground(Color.black);

    JScrollPane sp = new JScrollPane();
    sp.getViewport().setView(list);
    sp.setPreferredSize(new Dimension(200, 80));

    JPanel p = new JPanel();
    p.add(sp);

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

実行結果は下記のようになります。

表示方法の変更(前景色と背景色)

( Written by Tatsuo Ikura )

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