前景色及び背景色を設定する

広告

エディタに含まれるJFormattedTextFieldクラスのオブジェクトを取得したら、そのオブジェクトに対して前景色や背景色を設定することが出来ます。JFormattedTextFieldクラスについて詳しくは『JFormattedTextFieldクラス』を参照して下さい。

まず前景色を設定します。JFormattedTextFieldクラスの親クラスであるJComponentクラスで用意されている「setForeground」メソッドを使います。

このコンポーネントのフォアグラウンドカラーを設定します。このプロパティー
が受け付けられるかどうかは Look & Feel 次第であり、無視されることもあり
ます。 

パラメータ:
  fg - 要求するフォアグラウンド Color

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

次に背景色を設定します。JFormattedTextFieldクラスの親クラスであるJComponentクラスで用意されている「setBackground」メソッドを使います。

このコンポーネントのバックグラウンドカラーを設定します。バックグラウンド
カラーは、コンポーネントが不透明である場合にのみ、JComponent または 
ComponentUI の実装のサブクラスによってのみ使用されます。JComponent の直
接のサブクラスは、このプロパティーを受け付けるために paintComponent を
オーバーライドする必要があります。

このプロパティーが受け付けられるかどうかは Look & Feel 次第であり、無視
されることもあります。

パラメータ:
  bg - 要求するバックグラウンド Color

引数に背景色として指定したいColorクラスのオブジェクトを指定します。

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

SpinnerDateModel model = new SpinnerDateModel();
JSpinner spinner = new JSpinner(model);

JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "yyyy.MM.dd");
spinner.setEditor(editor);

JFormattedTextField ftext = editor.getTextField();
ftext.setForeground(Color.red);
ftext.setBackground(Color.black);

サンプルプログラム

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

JSpinnerTest19.java

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

public class JSpinnerTest19 extends JFrame{

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

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

  JSpinnerTest19(){
    SpinnerDateModel model = new SpinnerDateModel();
    JSpinner spinner = new JSpinner(model);

    JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "yyyy.MM.dd");
    spinner.setEditor(editor);
    spinner.setPreferredSize(new Dimension(150, 25));

    JFormattedTextField ftext = editor.getTextField();
    ftext.setForeground(Color.red);
    ftext.setBackground(Color.black);

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

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

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

エディターに対して前景色及び背景色を設定する

( Written by Tatsuo Ikura )

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