モジュール java.desktop
パッケージ java.awt.image

インタフェースWritableRenderedImage

  • すべてのスーパー・インタフェース:
    RenderedImage
    既知のすべての実装クラス:
    BufferedImage


    public interface WritableRenderedImage
    extends RenderedImage
    WritableRenderedImageは、Rastersの形式でイメージ・データを含む、または生成することができ、変更および/または上書き可能なオブジェクトの共通インタフェースです。 イメージ・データは1つのタイルまたはタイルの規則正しい配列として格納または作成されます。

    WritableRenderedImageは、タイルが書込みのためにgetWritableTileメソッドでチェック・アウトされたとき、および特定のタイルの最後のライターがreleaseWritableTileの呼出しでアクセスを放棄したときに、関連するほかのオブジェクトに通知を行います。 また、現在チェック・アウトされているタイルがあるかどうかを、呼出し側がhasTileWritersで判定したり、getWritableTileIndicesで、そのようなタイルのリストをPointオブジェクトのVectorの形で取得したりできるようにします。

    タイルの書込み可能性の変更通知を必要とするオブジェクトは、TileObserverインタフェースを実装する必要があり、addTileObserverの呼出しによって追加されます。 同じオブジェクトで複数回addTileObserverを呼び出すと、複数の通知を受けることになります。 既存のオブザーバの場合、removeTileObserverの呼出しで通知を減らすことができます。オブザーバが通知を持たない場合、オペレーション側では何も行いません。

    WritableRenderedImageでは、最初のライターがタイルを取得し、最後のライターがそれを解放したときにだけ通知が行われるようにする必要があります。

    • メソッドの詳細

      • addTileObserver

        void addTileObserver​(TileObserver to)
        オブザーバを追加します。 オブザーバがすでにある場合は、複数の通知を受け取ることになります。
        パラメータ:
        to - 指定されたTileObserver
      • removeTileObserver

        void removeTileObserver​(TileObserver to)
        オブザーバを削除します。 オブザーバが登録されていなかった場合は、何も行われません。 オブザーバが複数の通知に対して登録されていた場合は、1つ少なくなります。
        パラメータ:
        to - 指定されたTileObserver
      • getWritableTile

        WritableRaster getWritableTile​(int tileX,
                                       int tileY)
        書込みのためにタイルをチェック・アウトします。 WritableRenderedImageは、タイルにライターがない状態からライターが1つある状態に変わったときに、すべてのTileObserverに通知を行います。
        パラメータ:
        tileX - タイルのXインデックス。
        tileY - タイルのYインデックス。
        戻り値:
        書込み可能なタイル。
      • releaseWritableTile

        void releaseWritableTile​(int tileX,
                                 int tileY)
        タイルに書き込む権利を放棄します。 呼出し側がタイルへの書込みを続けた場合、結果は保証されません。 このメソッドの呼出しは、getWritableTileの呼び出しとの対でのみ使用します。それ以外の方法で使用した場合、結果は保証されません。 WritableRenderedImageは、タイルにライターが1つある状態からライターがない状態に変わったときに、すべてのTileObserverに通知を行います。
        パラメータ:
        tileX - タイルのXインデックス。
        tileY - タイルのYインデックス。
      • isTileWritable

        boolean isTileWritable​(int tileX,
                               int tileY)
        タイルが現在書込みのためにチェック・アウトされているかどうかを返します。
        パラメータ:
        tileX - タイルのXインデックス。
        tileY - タイルのYインデックス。
        戻り値:
        指定されたタイルが書込み用にチェック・アウトされている場合はtrue、そうでない場合はfalse
      • getWritableTileIndices

        Point[] getWritableTileIndices​()
        どのタイルが書込みのためにチェック・アウトされているかを示すPointオブジェクトの配列を返します。 チェック・アウトされているタイルがない場合はnullを返します。
        戻り値:
        書込み用にチェック・アウトされたタイルの位置を格納する配列
      • hasTileWriters

        boolean hasTileWriters​()
        書込みのためにチェック・アウトされているタイルがあるかどうかを返します。 (getWritableTileIndices()!= null)と同じです。
        戻り値:
        タイルが書込み用にチェック・アウトされている場合はtrue、そうでない場合はfalse
      • setData

        void setData​(Raster r)
        イメージの矩形を、WritableRenderedImageと同じ座標空間にあると見なされるRaster rの内容に設定します。 オペレーションはWritableRenderedImageの境界にクリッピングされます。
        パラメータ:
        r - 指定されたRaster