目次 | 前の項目 | 次の項目 | Java 2D API |
Graphics2D では、Shape、テキスト文字列、および Image のレンダリング用に、次のメソッドが提供されています。
図形のストロークを描画して塗りつぶすには、draw メソッドと fill メソッドの両方を呼び出す必要があります。Graphics2D は、drawOval や、fillRect など、旧バージョンの JDK で提供されていた描画用と塗りつぶし用のメソッドもサポートしています。
Shape の輪郭線は、Graphics2D.draw メソッドでレンダリングできます。 旧バージョンの JDK で提供されていた次の描画メソッドもサポートされています。 drawLine、drawRect、drawRoundRect、drawOval、drawArc、drawPolyline、drawPolygon、draw3DRect。Shape を描画すると、Graphics2D コンテキストの Stroke オブジェクトでパスが描画されます。 詳細については、「ストローク属性」を参照してください。 Graphics2D コンテキストに適切な BasicStroke オブジェクトを設定することで、どのような幅やパターンの線でも描画できます。 BasicStroke オブジェクトでは、線の先端部と接合部の属性も定義されています。
次の例では、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); }
Graphics2D.fill メソッドを使って、任意の Shape を塗りつぶすことができます。 Shape を塗りつぶすと、そのパスの内側の領域が、Color、TexturePaint、GradientPaint など、Graphics2D コンテキストの現在の Paint 属性でレンダリングされます。旧バージョンの JDK で提供されていた次の塗りつぶしメソッドもサポートされています。 fillRect、fill3DRect、fillRoundRect、fillOval、fillArc、fillPolygon、clearRect。
次の例では、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); }
テキスト文字列をレンダリングするには、Graphics2D.drawString を呼び出して、レンダリングする文字列を渡します。 テキストのレンダリングとフォントの選択についての詳細は、「フォントとテキストレイアウト」を参照してください。
Image をレンダリングするには、Image を作成し、 Graphics2D.drawImage を呼び出します。 イメージの処理とレンダリングの詳細については、「イメージング」を参照してください。