模块 java.desktop

接口 WritableRenderedImage

所有父级接口:
RenderedImage
所有已知的实现类:
BufferedImage

public interface WritableRenderedImage extends RenderedImage
WritableRenderedImage 是包含或可以生成栅格形式的图像数据并且可以修改和/或重写的对象的通用接口。图像数据可以存储/产生为单个瓦片或规则的瓦片阵列。

WritableRenderedImage 在签出一个磁贴以进行写入(通过 getWritableTile 方法)以及当特定磁贴的最后一个写入者放弃其访问权限(通过调用 releaseWritableTile)时向其他感兴趣的对象提供通知。此外,它允许任何调用者确定当前是否有任何图块已签出(通过 hasTileWriters),并获取此类图块的列表(通过 getWritableTileIndices,以点对象向量的形式)。

希望收到磁贴可写性更改通知的对象必须实现 TileObserver 接口,并通过调用 addTileObserver 添加。为同一对象多次调用 addTileObserver 将导致多次通知。现有的观察者可以通过调用 removeTileObserver 来减少它的通知;如果观察者没有收到通知,则该操作是空操作。

WritableRenderedImage 有必要确保仅当第一个写入者获取图块而最后一个写入者释放它时才会发生通知。

  • 方法详情

    • addTileObserver

      void addTileObserver(TileObserver  to)
      添加一个观察者。如果观察者已经存在,它将收到多个通知。
      参数:
      to - 指定的 TileObserver
    • removeTileObserver

      void removeTileObserver(TileObserver  to)
      删除观察者。如果观察者没有注册,则什么也不会发生。如果观察者注册了多个通知,现在将少注册一个。
      参数:
      to - 指定的 TileObserver
    • getWritableTile

      WritableRaster  getWritableTile(int tileX, int tileY)
      检查用于书写的磁贴。 WritableRenderedImage 负责在磁贴从没有编写器变为有一个编写器时通知其所有 TileObservers。
      参数:
      tileX - 图块的 X 索引。
      tileY - 图块的 Y 索引。
      返回:
      一个可写的磁贴。
    • releaseWritableTile

      void releaseWritableTile(int tileX, int tileY)
      放弃写入磁贴的权利。如果调用者继续写入磁贴,则结果未定义。对该方法的调用应仅与对 getWritableTile 的调用成对出现;任何其他用途将导致不确定的结果。 WritableRenderedImage 负责在磁贴从有一个写入器变为没有写入器时通知它的所有 TileObservers。
      参数:
      tileX - 图块的 X 索引。
      tileY - 图块的 Y 索引。
    • isTileWritable

      boolean isTileWritable(int tileX, int tileY)
      返回磁贴当前是否已签出以进行写入。
      参数:
      tileX - 图块的 X 索引。
      tileY - 图块的 Y 索引。
      返回:
      true 如果指定的 tile 被检出写入; false否则。
    • getWritableTileIndices

      Point [] getWritableTileIndices()
      返回一个 Point 对象数组,指示哪些图块已签出以进行写入。如果没有签出,则返回 null。
      返回:
      一个数组,其中包含为写入而签出的图块的位置。
    • hasTileWriters

      boolean hasTileWriters()
      返回是否有任何磁贴被签出写入。语义上等同于 (getWritableTileIndices() != null)。
      返回:
      true 是否检查了任何磁贴以进行写入; false否则。
    • setData

      void setData(Raster  r)
      将图像的一个矩形设置为 Raster r 的内容,假定它与 WritableRenderedImage 在同一坐标空间中。该操作被裁剪到 WritableRenderedImage 的边界。
      参数:
      r - 指定的 Raster