-
- 所有已知实现类:
-
AbstractRegionPainter
public interface Painter<T>
绘画代表。 Painter接口只定义了一个方法,
paint
。 它用于开发人员可以更改组件的绘制例程而无需使用子类化组件的情况。 在进行任何形式的绘画授权时,它通常也很有用。Painter
s只是Java2D代码的封装,使重用现有的Painter
或将它们组合在一起变得相当简单。 这个接口的实现也很容易编写,这样如果你找不到Painter
你需要的Painter
,你可以用最少的努力编写一个。 编写Painter
需要了解Java2D。可以使用类型参数创建
Painter
。 这种类型将在paint
方法中出现。 例如,你可能希望写一个Painter
,只有拥有的子类作品Component
。 在这种情况下,当声明Painter
时,您可以声明它需要Component
,允许paint方法是类型安全的。 例如:Painter<Component> p = new Painter<Component>() { public void paint(Graphics2D g, Component c, int width, int height) { g.setColor(c.getBackground()); //and so forth } }
该接口不保证线程安全。
- 从以下版本开始:
- 1.7
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 void
paint(Graphics2D g, T object, int width, int height)
呈现给定的Graphics2D
对象。
-
-
-
方法详细信息
-
paint
void paint(Graphics2D g, T object, int width, int height)
呈现给定的
Graphics2D
对象。 此方法的实现可能会变量Graphics2D
上的Graphics2D
,并且不需要在完成时恢复该状态。 在大多数情况下,建议调用者传入临时图形对象。Graphics2D
绝不能为空。图形对象上的状态可能受到
paint
方法的paint
,但可能不是。 例如,Painter
实现可能会也可能不会遵守在图形上设置抗锯齿渲染提示。提供的对象参数充当可选配置参数。 例如,它可以是
Component
类型。 一个Painter
的预期则完全可以从阅读状态Component
和使用状态的画。 例如,实现可以读取backgroundColor并使用它。通常,为了增强可重用性,大多数标准
Painter
忽略此参数。 因此,它们可以在任何情况下重复使用。object
可能为null。 如果object参数为null,则实现不得抛出NullPointerException。最后,
width
和height
参数指定Painter
应绘制的宽度和高度。 更具体地说,指定的宽度和高度指示画家应该在该宽度和高度内完全涂漆。g
参数上的任何指定剪辑将进一步限制该区域。例如,假设我有一个绘制渐变的
Painter
实现。 渐变从白色变为黑色。 它“伸展”以填充绘画区域。 因此,如果我使用这个Painter
绘制一个500 x 500区域,最左边将是黑色,最右边将是白色,并且之间将绘制平滑渐变。 然后,我可以在不进行修改的情况下重复使用Painter
来绘制尺寸为20x20的区域。 这个区域左边是黑色,右边是白色,两者之间是平滑的渐变。- 参数
-
g
- 要渲染的Graphics2D。 这不能为空。 -
object
- 可选配置参数。 这可能是空的。 -
width
- 要绘制的区域的宽度。 -
height
- 要绘制的区域的高度。
-
-