JColorChooserクラスの定義とコンストラクタ

広告

JColorChooserクラスの定義を確認します。クラス図は次のようになっています。

java.lang.Object
  java.awt.Component
    java.awt.Container
      javax.swing.JComponent
        javax.swing.JColorChooser

public class JColorChooser
extends JComponent
implements Accessible

JColorChooserクラスはJComponentクラスのサブクラスとなっています。JComponentクラスはSwingで用いられる多くのコンポーネントのベースとなっているクラスです。

JColorChooserクラスのコンストラクタ

JColorChooserクラスをを利用するにはコンストラクタを使ってJColorChooserクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
JColorChooser()
初期色が白のカラーチューザ区画を生成します。
JColorChooser(Color initialColor)
指定された初期色のカラーチューザ区画を生成します。
JColorChooser(ColorSelectionModel model)
指定された ColorSelectionModel でカラーチューザの区画を生成します。

3つのコンストラクタが用意されています。コンストラクタではデフォルトコンストラクタの他に初期カラーを指定出来るコンストラクタが用意されています。

それでは1番目のコンストラクタを確認してみます。

初期色が白のカラーチューザ区画を生成します。

このコンストラクタでは初期カラーが白のカラーチューザーを作成します。

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

JColorChooser colorchooser = new JColorChooser();

サンプルプログラム

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

JColorChooserTest1.java

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

public class JColorChooserTest1 extends JFrame implements ChangeListener{

  JColorChooser colorchooser;
  JLabel colorLabel;

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

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

  JColorChooserTest1(){
    colorLabel = new JLabel("選択した色が背景色として表示されます");
    colorLabel.setOpaque(true);

    colorchooser = new JColorChooser();
    colorchooser.getSelectionModel().addChangeListener(this);

    getContentPane().add(colorchooser, BorderLayout.CENTER);
    getContentPane().add(colorLabel, BorderLayout.PAGE_START);
  }

  public void stateChanged(ChangeEvent e) {
    Color color = colorchooser.getColor();
    colorLabel.setBackground(color);
  }
}

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

JColorChooserのサンプル

色を選択すると画面上部に表示されているラベルの背景色が選択した色に変更されます。

JColorChooserのサンプル

色の選択は初期画面で表示されている作成済みの色を選択する以外に「HSB」形式や「RGB」形式で色を選択することも可能です。カラーチューザーの上部に表示されている「HSB」タブや「RGB」タブをクリックして下さい。

JColorChooserのサンプル

JColorChooserのサンプル

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。