- 类型参数:
-
T
- 配置参数的类型
- 所有已知的实现类:
-
AbstractRegionPainter
一个绘画委托。Painter接口定义了一个方法,即paint
。它用于开发人员可以在不必通过子类化组件的情况下更改组件的绘画例程的情况下使用。在进行任何形式的绘画委托时,它也是通用有用的。
Painter
只是Java2D代码的封装,使得重用现有的Painter
或将它们组合在一起变得相当简单。实现这个接口也很容易,如果找不到符合需求的Painter
,你可以很轻松地编写一个。编写Painter
需要了解Java2D。
一个Painter
可以使用类型参数创建。这个类型将在paint
方法中使用。例如,你可能希望编写一个只能与Component
子类一起使用的Painter
。在这种情况下,当声明Painter
时,你可以声明它需要一个Component
,从而使得paint方法类型安全。例如:
Painter<Component> p = new Painter<Component>() {
public void paint(Graphics2D g, Component c, int width, int height) {
g.setColor(c.getBackground());
//等等
}
}
这个接口不保证线程安全。
- 自版本:
- 1.7
-
Method Summary
Modifier and TypeMethodDescriptionvoid
paint
(Graphics2D g, T object, int width, int height) 渲染到给定的Graphics2D
对象。
-
Method Details
-
paint
渲染到给定的
Graphics2D
对象。这个方法的实现可能修改Graphics2D
上的状态,并且不需要在完成后恢复该状态。在大多数情况下,建议调用者传入一个临时的图形对象。Graphics2D
绝不能为null。图形对象上的状态可能会被
paint
方法遵守,但也可能不会。例如,在图形上设置抗锯齿渲染提示可能会或可能不会被Painter
实现所尊重。提供的对象参数充当可选的配置参数。例如,它可以是
Component
类型。一个期望这个参数的Painter
可以从该Component
读取状态并将状态用于绘画。例如,一个实现可以读取backgroundColor并使用它。通常,为了增强可重用性,大多数标准的
Painter
会忽略这个参数。因此,它们可以在任何上下文中重用。这个object
可能为null。如果对象参数为null,实现不能抛出NullPointerException。最后,
width
和height
参数指定Painter
应该绘制到的宽度和高度。更具体地说,指定的宽度和高度指示绘画应完全在这个宽度和高度内进行。在g
参数上指定的任何剪辑将进一步限制区域。例如,假设我有一个绘制渐变的
Painter
实现。渐变从白色到黑色。它“拉伸”以填充绘制的区域。因此,如果我使用这个Painter
来绘制一个500 x 500的区域,最左边将是黑色,最右边将是白色,并且之间会绘制平滑的渐变。然后,我可以不经修改地重用这个Painter
来绘制一个大小为20x20的区域。这个区域也将在左侧为黑色,在右侧为白色,并且之间绘制平滑的渐变。- 参数:
-
g
- 要渲染的Graphics2D。这个参数不能为null。 -
object
- 一个可选的配置参数。这个参数可能为null。 -
width
- 要绘制的区域的宽度。 -
height
- 要绘制的区域的高度。
-