Java AWT - 矩形、線、円を描く

Java AWT –長方形、線、円の描画

java.awtライブラリは、ウィンドウに形状を描画するためにJavaによって提供されるクラスのセットです。 略語AWTはAbstract Windowing Toolkitの略です。 現在、ライブラリは巨大なクラスのセットに変換されており、ユーザーはGUIベースのアプリケーション全体を作成できます。 これらのクラスの外観は、アプリケーションが実行されるプラットフォームによって異なります。

すべてのクラスの中で最も基本的なのは、単純な幾何学的形状を描画するために使用されるjava.awt.geomライブラリです。 この記事では、四角形、線、円などの単純な図形を描画するコードについて説明します。

JFrame & JPanel
JFrameおよびJPanelは、javax.swing librariesに属するクラスです。 Swingライブラリは、AWTライブラリスタックの上に作成されます。 JFrameは、さまざまなコンポーネントをウィンドウにまとめて保持するコンテナのようなウィンドウです。 JPanelは、JFrame内に収まり、コンポーネントのグループ化に役立つコンテナーです。

以下のコードでは、シェイプオブジェクトを保持するためにJFrameJPanelを使用しています。

AWT描画の例

ここで、AWTライブラリを使用して図形を描画する主要なテーマにジャンプしましょう。 このpageは、図形の描画に使用できるさまざまなクラスを示しています。 クラスの名前は、描画可能な図形がどれであるかを明確に説明します。

DrawShapes.java

package com.example;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class DrawShapes extends JFrame {

    private static final long serialVersionUID = 1L;

    public DrawShapes() {

        setSize(new Dimension(320, 320));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        JPanel p = new JPanel() {
            @Override
            public void paintComponent(Graphics g) {
                Graphics2D g2 = (Graphics2D) g;
                Shape line = new Line2D.Double(3, 3, 303, 303);
                Shape rect = new Rectangle(3, 3, 303, 303);
                Shape circle = new Ellipse2D.Double(100, 100, 100, 100);
                Shape roundRect = new RoundRectangle2D.Double(20, 20, 250, 250, 5, 25);
                g2.draw(line);
                g2.draw(rect);
                g2.draw(circle);
                g2.draw(roundRect);
            }
        };
        setTitle("My Shapes");
        this.getContentPane().add(p);
    }

    public static void main(String arg[]) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                new DrawShapes();
            }
        });
    }

}

出力:

awt-shapes

上記のコードは、線、長方形、円、角丸長方形を描画します。 通常、コンストラクターに渡される引数には、線形オブジェクトの場合の座標、幅、および高さが含まれます。 EllipseやArcのような丸い形状の場合、渡される引数には、原点の座標、形状の幅と高さが含まれます。 コードを実行することにより、以下に示すようなウィンドウの形式で出力が取得されます。

以下の参照を使用して、AWTライブラリで使用可能なさまざまなタイプのコンストラクターおよび形状に関する詳細を取得できます。