基本的な図形の描画

ここでは矩形(長方形)の描画APIである drawRect を取り上げます。

矩形を描くことを通して、線の色、太さ、線の繋ぎ方などをみていきます。

尚、プログラムの全体の構成としては、「ウィンドウに描画するための準備」で説明したとおりです。

動作確認をしたい人はみておいてください。

矩形の描画

矩形を描画するには drawRect メソッドが利用できます。

この時に、paintComponent に渡される Graphics を Graphics2D にキャストしています。ダウンキャストになりますが、これは成功することになってます。

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Panel1 extends JPanel {

  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setColor(Color.RED);
    g2d.drawRect(50, 50, 150, 100);
  }

}

また、ここでは setColor メソッドで描画色を変更しています。

次に線の太さを変更しましょう。これには BasicStroke を使います。

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Panel1 extends JPanel {

  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setColor(Color.RED);
    BasicStroke stroke = new BasicStroke(10.0f);
    g2d.setStroke(stroke);
    g2d.drawRect(50, 50, 150, 100);
  }

}

尚、描画の線の隅と直線と直線の繋ぎ方は、CAP や JOINT を Stroke で指定します。例えば、次のような丸みのある角を実装するには、CAP_ROUND、JOINT_ROUND を指定します。

    BasicStroke stroke = new BasicStroke(
      10.0f,
      BasicStroke.CAP_ROUND,
      BasicStroke.JOIN_ROUND);
    g2d.setStroke(stroke);

あるいは、drawRoundRect という、それ専用のメソッドもあります。

    BasicStroke stroke = new BasicStroke(10.0f);
    g2d.setStroke(stroke);
    g2d.drawRoundRect(50, 50, 150, 100, 10, 10);

こうした矩形 (Rectangle) の他、楕円 (Oval)、線 (Line)、多角形 (Polygon) などの基本的な図形は専用のメソッドが用意されていますので、必要に応じてリファレンス等を参照すると良いです。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Java 入門