drawメソッドとfillメソッド

広告

Graphics2Dクラスのオブジェクトを使って図形を描画するには輪郭を描画する方法と塗りつぶしで描画する方法があります。輪郭部分を描画するにはGraphics2Dクラスで用意されている「draw」メソッドを使います。

現在の Graphics2D コンテキストの設定を使うことにより、Shape の輪郭をスト
ロークで描画します。適用される描画属性には、Clip、Transform、Paint、
Composite、および Stroke の各属性があります。

パラメータ:
  s - 描画される Shape

引数にはShapeインターフェースを実装したクラスのオブジェクトを指定します。

また塗りつぶして描画するにはGraphics2Dクラスで用意されている「fill」メソッドを使います。

Graphics2D コンテキストの設定を使うことにより、Shape の内部を塗りつぶし
ます。適用される描画属性には、Clip、Transform、Paint、および Composite 
の各属性があります。

パラメータ:
s - 塗りつぶされる Shape

引数にはShapeインターフェースを実装したクラスのオブジェクトを指定します。

どちらのメソッドを使う場合にも、Graphics2Dクラスのオブジェクトに設定した色属性(Paint)や線属性(Stroke)が適用されて図形が描画されます。

Shapeインターフェース

「draw」メソッドや「fill」メソッドで描画の対象となるものをShapeインタフェースを実装したクラスのオブジェクトとして指定します。Shapeインターフェースを実装したクラスとしては次のようなものがあります。

Arc2D
CubicCurve2D
Ellipse2D
GeneralPath
Line2D
Path2D
Polygon
QuadCurve2D
Rectangle2D
RoundRectangle2D

具体的な利用方法は次のページ以降で詳しく見ていきますが利用方法は次のような感じとなります。

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

  g2.draw(new Rectangle2D.Double(70, 50, 110, 120));
  g2.fill(new Arc2D.Double(70, 50, 90, 90, 330, 100, Arc2D.PIE));
}

( Written by Tatsuo Ikura )