JavaTM 2 Platform
Standard Ed. 5.0

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)

setSource

public ParameterBlock setSource(Object source,
                                int index)
将源列表中的某个项替换为一个新源。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
source - 指定的源图像
index - 指向 sources Vector 索引,在该处将插入指定的 source
返回:
包含位于指定 index 处的指定 source 的新 ParameterBlock
另请参见:
getSource(int)

getRenderedSource

public RenderedImage getRenderedSource(int index)
返回作为 RenderedImage 的源。这是一种便捷方法。如果源不是 RenderedImage,则会抛出异常。

参数:
index - 要返回的源的索引
返回:
表示位于 sources Vector 中指定索引处的源图像的 RenderedImage

getRenderableSource

public RenderableImage getRenderableSource(int index)
返回作为 RenderableImage 的源。这是一种便捷方法。如果源不是 RenderableImage,则会抛出异常。

参数:
index - 要返回的源的索引
返回:
表示位于此 sources Vector 中指定索引处的源图像的 RenderableImage

getNumSources

public int getNumSources()
返回源图像的数量。

返回:
返回此 sources Vector 中源图像的数量。

getSources

public Vector<Object> getSources()
返回源的整个 Vector。

返回:
sources Vector
另请参见:
setSources(Vector)

setSources

public void setSources(Vector<Object> sources)
将源的整个 Vector 设置为给定 Vector。

参数:
sources - 源图像的 Vector
另请参见:
getSources()

removeSources

public void removeSources()
清除源图像的列表。


getNumParameters

public int getNumParameters()
返回参数的数量(不包括源图像)。

返回:
parameters Vector 中的参数数量。

getParameters

public Vector<Object> getParameters()
返回参数的整个 Vector。

返回:
parameters Vector
另请参见:
setParameters(Vector)

setParameters

public void setParameters(Vector<Object> parameters)
将参数的整个 Vector 设置为给定 Vector。

参数:
parameters - 参数的指定 Vector
另请参见:
getParameters()

removeParameters

public void removeParameters()
清除参数列表。


add

public ParameterBlock add(Object obj)
将一个 Object 添加到此参数列表。

参数:
obj - 要添加到此 parameters VectorObject
返回:
一个包含指定参数的新 ParameterBlock

add

public ParameterBlock add(byte b)
将一个 Byte 添加到此参数列表。

参数:
b - 要添加到此 parameters Vector 的 Byte
返回:
一个包含指定参数的新 ParameterBlock

add

public ParameterBlock add(char c)
将一个 Character 添加到此参数列表。

参数:
c - 要添加到此 parameters Vector 的 char
返回:
包含指定参数的新 ParameterBlock

add

public ParameterBlock add(short s)
将一个 Short 添加到此参数列表。

参数:
s - 要添加到此 parameters Vector 的 short
返回:
一个包含指定参数的新 ParameterBlock

add

public ParameterBlock add(int i)
将一个 Integer 添加到此参数列表。

参数:
i - 要添加到此 parameters Vector 的 int
返回:
一个包含指定参数的新 ParameterBlock

add

public ParameterBlock add(long l)
将一个 Long 添加到此参数列表。

参数:
l - 要添加到此 parameters Vector 的 long
返回:
一个包含指定参数的新 ParameterBlock

add

public ParameterBlock add(float f)
将一个 Float 添加到此参数列表。

参数:
f - 要添加到此 parameters Vector 的 float
返回:
一个包含指定参数的新 ParameterBlock

add

public ParameterBlock add(double d)
将一个 Double 添加到此参数列表。

参数:
d - 要添加到此 parameters Vector 的 double
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(Object obj,
                          int index)
替换此参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
obj - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(byte b,
                          int index)
使用 Byte 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
b - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(char c,
                          int index)
使用 Character 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
c - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(short s,
                          int index)
使用 Short 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
s - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(int i,
                          int index)
使用 Integer 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
i - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(long l,
                          int index)
使用 Long 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
l - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(float f,
                          int index)
使用 Float 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
f - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

set

public ParameterBlock set(double d,
                          int index)
使用 Double 替换参数列表中的一个 Object。如果索引位于当前源列表之外,则该列表将根据需要使用 null 进行扩展。

参数:
d - 替换 parameters Vector 中指定索引处参数的参数
index - 要使用指定参数替换的参数索引
返回:
一个包含指定参数的新 ParameterBlock

getObjectParameter

public Object getObjectParameter(int index)
获取作为对象的参数。

参数:
index - 要获取的参数的索引
返回:
表示 parameters Vector 中指定索引处参数的 Object

getByteParameter

public byte getByteParameter(int index)
作为 byte 返回参数的便捷方法。如果该参数为 null 或者不是一个 Byte,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 byte 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Byte
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getCharParameter

public char getCharParameter(int index)
作为 char 返回参数的便捷方法。如果该参数为 null 或者不是 Character,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 char 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Character
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getShortParameter

public short getShortParameter(int index)
作为 short 返回参数的便捷方法。如果该参数为 null 或者不是一个 Short,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 short 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Short
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getIntParameter

public int getIntParameter(int index)
作为 int 返回参数的便捷方法。如果该参数为 null 或者不是一个 Integer,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 int 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Integer
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getLongParameter

public long getLongParameter(int index)
作为 long 返回参数的便捷方法。如果该参数为 null 或者不是 Long,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 long 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Long
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getFloatParameter

public float getFloatParameter(int index)
作为 float 返回参数的便捷方法。如果该参数为 null 或者不是一个 Float,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 float 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Float
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getDoubleParameter

public double getDoubleParameter(int index)
作为 double 返回参数的便捷方法。如果该参数为 null 或者不是一个 Double,则抛出异常。

参数:
index - 要返回的参数的索引。
返回:
指定索引处作为 double 值的参数。
抛出:
ClassCastException - 如果指定索引处的参数不是一个 Double
NullPointerException - 如果指定索引处的参数为 null
ArrayIndexOutOfBoundsException - 如果 index 为负或不小于此 ParameterBlock 对象的当前大小

getParamClasses

public Class[] getParamClasses()
返回描述该参数的 Class 对象的数组。

返回:
Class 对象的数组。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策