Java で円を描く

Rupam Yadav 2023年10月12日
  1. Java の drawOval() 関数を使って円を描く
  2. Java で drawRoundRect() 関数を使って円を描く
  3. Java で Shapedraw() を使って円を描く
Java で円を描く

この記事では、GUI コンポーネントを作成するためのライブラリ java.awtjavax.swing を使って、Java で円を描く方法を紹介します。画面上に描きたいグラフィカルコンポーネントをよりコントロールできる Graphics2d クラスのいくつかの関数を使用することになります。

Java の drawOval() 関数を使って円を描く

最初の例では、Graphics2D クラスのメソッド drawOval() を用いて楕円形を作成するが、完全な円を作成します。円を描くには、まず、Graphics クラスを使ってコンポーネントを描画する関数 paint(Graphics g) をオーバーライドします。

そのメソッドとプロパティを使用するために、GraphicsGraphics2D 型にキャストします。ここで drawOval() 関数を呼び出して 4つの引数を渡します。最初の 2つの引数は円の x と y の座標であり、最後の 2つの引数は描画する円の幅と高さを指定します。

最後に、javax.swing パッケージの JFrame を拡張して、指定したサイズとプロパティを持つウィンドウフレームを作成します。

import java.awt.*;
import javax.swing.*;

public class DrawCircle extends JFrame {
  public DrawCircle() {
    setTitle("Drawing a Circle");
    setSize(400, 400);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  @Override
  public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawOval(150, 150, 100, 100);
  }

  public static void main(String[] args) {
    new DrawCircle();
  }
}

出力:

Java で drawoval を使って円を描く

Java で drawRoundRect() 関数を使って円を描く

また、drawRoundRect() という Graphics2D クラスの別のメソッドも円を描くのに用いることができます。その名が示すように、これは丸みを帯びた矩形を描画します。最初の例と同様に、paint(Graphics g) 関数をオーバーライドしてから Graphics2D クラスの drawRoundRect() メソッドを呼び出す。

drawRoundRect() は 6つの引数を受け付ける。最初の 2つは x と y の座標、次の 2つは幅と高さ、最後の 2つは円弧の幅と高さです。

import java.awt.*;
import javax.swing.*;

public class DrawCircle extends JFrame {
  public DrawCircle() {
    setTitle("Drawing a Circle");
    setSize(250, 250);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  @Override
  public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawRoundRect(40, 50, 90, 90, 200, 200);
  }

  public static void main(String[] args) {
    new DrawCircle();
  }
}

出力:

Java で drawRoundRect を使って円を描く

Java で Shapedraw() を使って円を描く

draw()graphics2D クラスの別の関数で、Shape を引数にとります。Shape は幾何学的な形状の特性を提供するインターフェースです。楕円の高さと幅を定義する Ellipse2D.Double() を使用することにします。

下の例では、Ellipse2D.Double() に引数を渡し、draw() メソッドに Shape オブジェクトを渡しています。このメソッドは最終的に JFrame で作成したウィンドウに円を描画します。

import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;

public class DrawCircle extends JFrame {
  public DrawCircle() {
    setTitle("Drawing a Circle");
    setSize(250, 250);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  @Override
  public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    Shape circleShape = new Ellipse2D.Double(100, 100, 100, 100);

    g2d.draw(circleShape);
  }

  public static void main(String[] args) {
    new DrawCircle();
  }
}

出力:

Shape を使って Java で円を描く

著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java GUI