目次 | 前の項目 | 次の項目 Java 2D API


2.4 グラフィックスプリミティブのレンダリング

Graphics2D では、Shape、テキスト文字列、および Image のレンダリング用に、次のメソッドが提供されています。

図形のストロークを描画して塗りつぶすには、draw メソッドと fill メソッドの両方を呼び出す必要があります。

Graphics2D は、drawOval や、fillRect など、旧バージョンの JDK で提供されていた描画用と塗りつぶし用のメソッドもサポートしています。


2.4.1 Shape の描画

Shape の輪郭線は、Graphics2D.draw メソッドでレンダリングできます。 旧バージョンの JDK で提供されていた次の描画メソッドもサポートされています。 drawLinedrawRectdrawRoundRectdrawOvaldrawArcdrawPolylinedrawPolygondraw3DRect

Shape を描画すると、Graphics2D コンテキストの Stroke オブジェクトでパスが描画されます。 詳細については、「ストローク属性」を参照してください。 Graphics2D コンテキストに適切な BasicStroke オブジェクトを設定することで、どのような幅やパターンの線でも描画できます。 BasicStroke オブジェクトでは、線の先端部と接合部の属性も定義されています。

図形の輪郭線は、次の手順でレンダリングします。

  1. BasicStroke オブジェクトを生成する
  2. Graphics2D.setStroke を呼び出す
  3. Shape を作成する
  4. Graphics2D.draw(shape) を呼び出す
次の例では、GeneralPath オブジェクトを使って星型を定義し、BasicStroke オブジェクトを Graphics2D コンテキストに追加して、星型の輪郭線の幅と接合部の属性を定義しています。

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

  		// create and set the stroke
  		g2.setStroke(new BasicStroke(4.0f));

  		// Create a star using a general path object
  		GeneralPath p = new GeneralPath(GeneralPath.NON_ZERO);
  		p.moveTo(- 100.0f, - 25.0f);
  		p.lineTo(+ 100.0f, - 25.0f);
  		p.lineTo(- 50.0f, + 100.0f);
  		p.lineTo(+ 0.0f, - 100.0f);
  		p.lineTo(+ 50.0f, + 100.0f);
  		p.closePath();

  		// translate origin towards center of canvas
  		g2.translate(100.0f, 100.0f);
  
  		// render the star's path
  		g2.draw(p);
	}

2.4.2 Shape の塗りつぶし

Graphics2D.fill メソッドを使って、任意の Shape を塗りつぶすことができます。 Shape を塗りつぶすと、そのパスの内側の領域が、ColorTexturePaintGradientPaint など、Graphics2D コンテキストの現在の Paint 属性でレンダリングされます。

旧バージョンの JDK で提供されていた次の塗りつぶしメソッドもサポートされています。 fillRectfill3DRectfillRoundRectfillOvalfillArcfillPolygonclearRect

Shape を塗りつぶすには、次のようにします。

  1. Graphics2D.setColor または Graphics2D.setPaint を使って、グラフィックスコンテキストの塗りつぶしの色またはパターンを設定する
  2. Shape を作成する
  3. Graphics2D.fill を呼び出して、Shape をレンダリングする
次の例では、setColor を呼び出し、緑色での塗りつぶしを Rectangle2D に定義しています。

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

  		g2.setPaint(Color.green);
  		Rectangle2D r2 = new Rectangle2D.Float(25,25,150,150);

   		g2.fill(r2);
	}

2.4.3 テキストのレンダリング

テキスト文字列をレンダリングするには、Graphics2D.drawString を呼び出して、レンダリングする文字列を渡します。 テキストのレンダリングとフォントの選択についての詳細は、「フォントとテキストレイアウト」を参照してください。


2.4.4 イメージのレンダリング

Image をレンダリングするには、Image を作成し、 Graphics2D.drawImage を呼び出します。 イメージの処理とレンダリングの詳細については、「イメージング」を参照してください。



目次 | 前の項目 | 次の項目
Copyright © 1997-2001 Sun Microsystems, Inc. All Rights Reserved.