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


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

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

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

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


2.4.1 Shape の描画

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

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 で提供されていた塗りつぶしメソッドの fillRectfill3DRectfillRoundRectfillOvalfillArcfillPolygon、および clearRect も、サポートされています。

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-1998 Sun Microsystems, Inc. All Rights Reserved.