所有类


java.awt.image.renderable
类 ParameterBlock

java.lang.Object
  继承者 java.awt.image.renderable.ParameterBlock
所有已实现的接口:
Serializable, Cloneable

public class ParameterBlock
   
   
   
   
   
extends Object
implements Cloneable, Serializable

ParameterBlock 封装有关 RenderableImageOp 所需的源和参数 (Object) 的所有信息,或者其他处理图像的类。

尽管可以将任意对象放入源 Vector,但此类的用户可能会强加一些语义限制,如要求所有源都作为 RenderedImages 或 RenderableImage。ParameterBlock 本身只是一个容器,而且不对源或参数类型执行检查。

ParameterBlock 中的所有参数都是对象;可以使用便捷的 add 和 set 方法,这些方法带基本类型的参数并构建 Number(Integer 或 Float)的适当子类。相应的 get 方法执行向下强制转换并拥有基本类型的返回值;如果存储的值没有正确的类型,则会抛出异常。无法区分 "short s; add(s)" 和 "add(new Short(s))" 之间的结果。

注意,get 和 set 方法对引用进行操作。因此,需要小心的是,在不适当的时候一定不要共享 ParameterBlock 之间的引用。例如,要创建一个与旧 ParameterBlock(除了添加的源之外)相等的新 ParameterBlock,有人可能会尝试编写以下程序:

 ParameterBlock addSource(ParameterBlock pb, RenderableImage im) {
     ParameterBlock pb1 = new ParameterBlock(pb.getSources());
     pb1.addSource(im);
     return pb1;
 }
 

这段代码具有替换原来 ParameterBlock 的负作用,因为 getSources 操作返回一个对其源 Vector 的引用。pb 和 pb1 同时共享其源 Vector,而且对其中之一的更改相对于两者来说都是可见的。

编写 addSource 函数的正确方法是克隆源 Vector:

 ParameterBlock addSource (ParameterBlock pb, RenderableImage im) {
     ParameterBlock pb1 = new ParameterBlock(pb.getSources().clone());
     pb1.addSource(im);
     return pb1;
 }
 

因此,定义了 ParameterBlock 的 clone 方法,以执行源和参数 Vectors 的克隆。可以使用标准的浅表克隆 shallowClone。

定义了 addSource、setSource、add 和 set 方法,以在添加其参数后返回 'this'。这允许使用类似以下的语法:

 ParameterBlock pb = new ParameterBlock();
 op = new RenderableImageOp("operation", pb.add(arg1).add(arg2));
 

另请参见:
序列化表格

字段摘要
protected  Vector<Object> parameters
          一个非源参数的 Vector,存储为任意 Object。
protected  Vector<Object> sources
          源的 Vector,存储为任意 Objects。
 
构造方法摘要
ParameterBlock()
          一个 dummy 构造方法。
ParameterBlock(Vector<Object> sources)
          使用源的给定 Vector 构造一个 ParameterBlock
ParameterBlock(Vector<Object> sources, Vector<Object> parameters)
          使用源的给定 Vector 和参数的 Vector 构造一个 ParameterBlock
 
方法摘要
 ParameterBlock add(byte b)
          将一个 Byte 添加到此参数列表。
 ParameterBlock add(char c)
          将一个 Character 添加到此参数列表。
 ParameterBlock add(double d)
          将一个 Double 添加到此参数列表。
 ParameterBlock add(float f)
          将一个 Float 添加到此参数列表。
 ParameterBlock add(int i)
          将一个 Integer 添加到此参数列表。
 ParameterBlock add(long l)
          将一个 Long 添加到此参数列表。
 ParameterBlock add(Object obj)
          将一个 Object 添加到此参数列表。
 ParameterBlock add(short s)
          将一个 Short 添加到此参数列表。
 ParameterBlock addSource(Object source)
          将一个图像添加到源列表的末尾。
 Object clone()
          创建 ParameterBlock 的一个副本。
 byte getByteParameter(int index)
          作为 byte 返回参数的便捷方法。
 char getCharParameter(int index)
          作为 char 返回参数的便捷方法。
 double getDoubleParameter(int index)
          作为 double 返回参数的便捷方法。
 float getFloatParameter(int index)
          作为 float 返回参数的便捷方法。
 int getIntParameter(int index)
          作为 int 返回参数的便捷方法。
 long getLongParameter(int index)
          作为 long 返回参数的便捷方法。
 int getNumParameters()
          返回参数的数量(不包括源图像)。
 int getNumSources()
          返回源图像的数量。
 Object getObjectParameter(int index)
          获取作为对象的参数。
 Class[] getParamClasses()
          返回描述该参数的 Class 对象的数组。
 Vector<Object> getParameters()
          返回参数的整个 Vector。
 RenderableImage getRenderableSource(int index)
          返回作为 RenderableImage 的源。
 RenderedImage getRenderedSource(int index)
          返回作为 RenderedImage 的源。
 short getShortParameter(int index)
          作为 short 返回参数的便捷方法。
 Object getSource(int index)
          返回作为通用 Object 的源。
 Vector<Object> getSources()
          返回源的整个 Vector。
 void removeParameters()
          清除参数列表。
 void removeSources()
          清除源图像的列表。
 ParameterBlock set(byte b, int index)
          使用 Byte 替换参数列表中的一个 Object。
 ParameterBlock set(char c, int index)
          使用 Character 替换参数列表中的一个 Object。
 ParameterBlock set(double d, int index)
          使用 Double 替换参数列表中的一个 Object。
 ParameterBlock set(float f, int index)
          使用 Float 替换参数列表中的一个 Object。
 ParameterBlock set(int i, int index)
          使用 Integer 替换参数列表中的一个 Object。
 ParameterBlock set(long l, int index)
          使用 Long 替换参数列表中的一个 Object。
 ParameterBlock set(Object obj, int index)
          替换此参数列表中的一个 Object。
 ParameterBlock set(short s, int index)
          使用 Short 替换参数列表中的一个 Object。
 void setParameters(Vector<Object> parameters)
          将参数的整个 Vector 设置为给定 Vector。
 ParameterBlock setSource(Object source, int index)
          将源列表中的某个项替换为一个新源。
 void setSources(Vector<Object> sources)
          将源的整个 Vector 设置为给定 Vector。
 Object shallowClone()
          创建 ParameterBlock 的一个浅表复制。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

sources

protected Vector<Object> sources
源的 Vector,存储为任意 Objects。


parameters

protected Vector<Object> parameters
一个非源参数的 Vector,存储为任意 Object。

构造方法详细信息

ParameterBlock

public ParameterBlock()
一个 dummy 构造方法。


ParameterBlock

public ParameterBlock(Vector<Object> sources)
使用源的给定 Vector 构造一个 ParameterBlock

参数:
sources - 源映像的 Vector

ParameterBlock

public ParameterBlock(Vector<Object> sources,
                      Vector<Object> parameters)
使用源的给定 Vector 和参数的 Vector 构造一个 ParameterBlock

参数:
sources - 源映像的 Vector
parameters - 要在呈现操作中使用的参数的 Vector
方法详细信息

shallowClone

public Object shallowClone()
创建 ParameterBlock 的一个浅表复制。按引用复制源和参数 Vectors,添加或更改将对两个版本都可见。

返回:
ParameterBlock 的 Object 克隆。

clone

public Object clone()
创建 ParameterBlock 的一个副本。克隆源和参数 Vector,但实际源和参数按引用复制。这允许对克隆中源和参数的顺序和数量的更改在初始 ParameterBlock 中可见。对共享源或参数本身的更改仍将可见。

覆盖:
Object 中的 clone
返回:
ParameterBlock 的 Object 克隆。
另请参见:
Cloneable

addSource

public ParameterBlock addSource(Object source)
将一个图像添加到源列表的末尾。将图像存储为对象,以便将来允许新的节点类型。

参数:
source - 将存储到源列表中的图像对象。
返回:
包含指定 source 的新 ParameterBlock

getSource

public Object getSource(int index)
返回作为通用 Object 的源。调用方必须将其强制转换为一个适当的类型。

参数:
index - 要返回的源的索引。
返回:
表示位于 sources Vector 中指定索引处的源的 Object
另请参见:
setSource(Object, int)

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部