目次 | 前の項目 | 次の項目 | Java 2D API |
AWT の初期バージョンでは、基本的な HTML ページのレンダリングに適した簡単なレンダリングパッケージが提供されていましたが、複雑なグラフィックスやテキストやイメージングに十分な完全な機能を備えたものではありませんでした。初期の AWT は、簡素化されたレンダリングパッケージということで、総合的なレンダリングコンセプトの中の限られた機能だけを実現していました。Java 2D API では、AWT を拡張してさらに一般的なグラフィックス操作とレンダリング操作をサポートすることにより、柔軟性が高く機能を完備したレンダリングパッケージが提供されています。たとえば、Graphics クラスを使うと、矩形や楕円やポリゴンを描画できます。Graphics2D は、ほとんどあらゆる幾何学的形状をレンダリングする機構を提供することで、幾何図形レンダリングのコンセプトを拡張しています。同様に、Java 2D API では、スタイルを指定した任意の幅の線を描画したり、任意のテクスチャーで幾何図形を塗りつぶしたりできます。
幾何学的な図形は、Rectangle2D や Ellipse2D など、Shape インタフェースの実装を通して提供されます。曲線や円弧も、Shape の具体的な実装です。
塗りつぶしとペンスタイルは、BasicStroke、GradientPaint、TexturePaint、Color など、Paint インタフェースと Stroke インタフェースの実装を通して提供されます。
AffineTransform では、拡大縮小、平行移動、回転、変形など、2D 座標の線形変換が定義されています。
クリップ領域は、Rectangle2D や GeneralPath など、Shape インタフェースの実装で定義されています。これは、一般的なクリッピング領域の定義で使われている実装と同じものです。
色の合成は、AlphaComposite など、Composite インタフェースの実装で提供されています。
Font は Glyph の集合で定義されていますが、Glyph は Shape で個別に定義されています。