選択される色を設定する

広告

カラーチューザーで選択される色を指定する方法を確認します。色を指定するにはコンストラクタで初期値として指定する方法とカラーチューザーを作成した後でメソッドを使って指定する方法があります。まずはコンストラクタで設定する方法を確認します。

public JColorChooser(Color initialColor)

指定された初期色のカラーチューザ区画を生成します。

パラメータ:
  initialColor - チューザの初期色のセット

引数にカラーチューザーが作成された時に初期値として選択したい色を表すColorクラスのオブジェクトを指定します。Colorクラスについては『Colorクラス』を参照して下さい。

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

JColorChooser colorchooser = new JColorChooser(Color.RED);

メソッドを使って設定する

一度作成されたカラーチューザーで選択されている色を設定する方法を確認します。JColorChooserクラスで用意されている「setColor」メソッドを使います。

public void setColor(Color color)

カラーチューザの現在の色を指定された色に設定します。ColorSelectionModel
は ChangeEvent をトリガーします。 

パラメータ:
  color - カラーチューザに設定される色

引数にカラーチューザーで選択したい色を表すColorクラスのオブジェクトを指定します。

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

JColorChooser colorchooser = new JColorChooser();
colorchooser.setColor(Color.RED);

また同じ「setColor」メソッドですが引数の指定の仕方が異なるメソッドも用意されています。

public void setColor(int r, int g, int b)

カラーチューザの現在の色を、指定された RGB 色に設定します。赤、緑、青の
各値は 0 ~ 255 の範囲の数字でなければなりません。

パラメータ:
  r - Red の量を指定する整数値
  g - Green の量を指定する整数値
  b - Blue の量を指定する整数値 
例外: 
  IllegalArgumentException - r、g、および b の値が範囲外の場合

3つの引数に赤、緑、青の各値を0から255までのint型の値を指定することでカラーチューザーに設定したい色を指定します。

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

JColorChooser colorchooser = new JColorChooser();
colorchooser.setColor(128, 0, 64);

サンプルプログラム

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

JColorChooserTest2.java

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

public class JColorChooserTest2 extends JFrame implements ChangeListener, ActionListener{

  JColorChooser colorchooser;
  JLabel colorLabel;
  JTextField redText = new JTextField("", 2);
  JTextField greenText = new JTextField("", 2);
  JTextField blueText = new JTextField("", 2);

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

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

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

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

    JPanel selectPanel = new JPanel();

    redText = new JTextField("", 2);
    greenText = new JTextField("", 2);
    blueText = new JTextField("", 2);

    JButton button = new JButton("change");
    button.addActionListener(this);

    selectPanel.add(new JLabel("RED"));
    selectPanel.add(redText);
    selectPanel.add(new JLabel("GREEN"));
    selectPanel.add(greenText);
    selectPanel.add(new JLabel("BLUE"));
    selectPanel.add(blueText);
    selectPanel.add(button);

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

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

  public void actionPerformed(ActionEvent e){
    int red = Integer.parseInt(redText.getText());
    int green = Integer.parseInt(greenText.getText());
    int blue = Integer.parseInt(blueText.getText());

    colorchooser.setColor(red, green, blue);
  }
}

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

JColorChooserで選択される色を設定する

カラーチューザーで指定した色が初期値として選択されていることが確認できます。

また画面下部の3つのテキストボックスに赤緑青の数値を入力してからボタンをクリックして下さい。

JColorChooserで選択される色を設定する

対応する色が選択状態となります。

JColorChooserで選択される色を設定する

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。