`java.awt`ライブラリは、ウィンドウにシェイプを描くためにJavaによって提供されるクラスのセットです。略語AWTは、Abstract Windowing Toolkitの略です。今日、ライブラリは、GUIベースのアプリケーション全体を作成するためのクラスの巨大なセットに変換されています。これらのクラスの外観は、アプリケーションが実行されているプラットフォームによって異なります。
すべてのクラスの中で最も基本的なものは `java.awt.geom`ライブラリです。これは単純な幾何学的形状を描くのに使われます。この記事では、Rectangle、Line、Circleなどの単純な図形を描画するコードについて説明します。
Swingライブラリは、AWTライブラリスタックの上に作成されます。
JFrame`は、さまざまなコンポーネントをウィンドウ内にまとめて保持するコンテナのようなウィンドウです。 `JPanel`は
JFrame`の内部に収まるコンテナであり、コンポーネントのグループ化に役立ちます。
以下のコードでは、シェイプオブジェクトを保持するために
JFrame`と
JPanel`を使用しています。
AWT描画の例
AWTライブラリを使用して図形描画の主題に飛びついてみましょう。このhttps://docs.oracle.com/javase/8/docs/api/java/awt/geom/package-frame.html[ページ]には、図形を描画するために使用できるさまざまなクラスが示されています。クラスの名前は、描くことができる可能な形がどれであるかを明確に説明しています。
DrawShapes.java
package com.techfou; 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ライブラリーで使用できるさまざまなタイプのコンストラクターとシェイプについてさらに詳しく知ることができます。