Colorクラスによる色の指定

広告

まず単純な色を指定する方法を確認します。「setPaint」メソッドの引数にColorクラスのオブジェクトを指定します。

※Colorクラスについては『Colorクラス』を参照して下さい。

具体的には次のように記述します。

public void paintComponent(Graphics g){
  Graphics2D g2 = (Graphics2D)g;

  g2.setPaint(Color.RED);
  g2.draw(new Ellipse2D.Double(30, 40, 50, 50));
  
  g2.setPaint(new Color(210, 30, 50));
  g2.fill(new RoundRectangle2D.Double(30, 130, 110, 50, 10, 20));
}

「setPaint」メソッドを実行した後で実行された「draw」メソッド及び「fill」メソッドで設定が反映されます。

サンプルプログラム

簡単なサンプルを一度試してみます。

PaintTest1.java

import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.*;
import java.awt.Color;
import java.awt.BasicStroke;

public class PaintTest1 extends JPanel{

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

    PaintTest1 app = new PaintTest1();
    frame.getContentPane().add(app);

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

  public void paintComponent(Graphics g){
    Graphics2D g2 = (Graphics2D)g;

    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
                        RenderingHints.VALUE_ANTIALIAS_ON);

    BasicStroke wideStroke = new BasicStroke(4.0f);
    g2.setStroke(wideStroke);

    g2.setPaint(Color.BLUE);
    g2.draw(new Ellipse2D.Double(70, 20, 50, 50));

    g2.setPaint(Color.RED);
    g2.draw(new Ellipse2D.Double(110, 20, 50, 50));

    g2.setPaint(Color.GREEN);
    g2.draw(new Ellipse2D.Double(150, 20, 50, 50));

    g2.setPaint(Color.PINK);
    g2.draw(new Ellipse2D.Double(190, 20, 50, 50));

    g2.setPaint(Color.YELLOW);
    g2.fill(new RoundRectangle2D.Double(30, 100, 110, 50, 10, 20));
  }
}

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

Colorクラスによる色の指定

上記のサンプルでは色の指定の他に線属性についても設定しています。線属性については別のページで詳しく見ていきます。

( Written by Tatsuo Ikura )