public interface Painter<T>
绘画代表。 Painter界面正好定义了一种方法, paint 。 它用于开发人员可以更改组件的绘制程序的情况,而无需使用子类化组件。 在做任何形式的绘画代表团时也是一般有用的。
Painter是Java2D代码的简单封装,并且重用现有的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 } }
此接口不保证线路安全。
| Modifier and Type | Method and Description |
|---|---|
void |
paint(Graphics2D g, T object, int width, int height)
给出给定的 Graphics2D对象。
|
void paint(Graphics2D g, T object, int width, int height)
给予给定的Graphics2D对象。 此方法的实现可能会修改Graphics2D上的Graphics2D ,并且在完成后不需要恢复该状态。 在大多数情况下,建议呼叫者传递一个临时图形对象。 Graphics2D永远不能为空。
图形对象上的状态可能会被paint方法所paint ,但可能不是。 例如,设置在显卡的抗锯齿呈现提示可能会或可能不会被尊重Painter实施。
提供的对象参数充当可选配置参数。 例如,它可以是Component 。 A Painter ,期望它可以从该Component读取状态并使用状态进行绘画。 例如,一个实现可以读取backgroundColor并使用它。
一般来说,为了提高可重用性,大多数标准的Painter忽略此参数。 因此,它们可以在任何情况下重复使用。 object可能为null。 如果对象参数为空,则实现不能抛出NullPointerException。
最后, width和height参数指定Painter应该绘制的宽度和高度。 更具体地说,指定的宽度和高度指示画家应该在该宽度和高度内完全绘制。 g参数上的任何指定剪辑将进一步限制该区域。
例如,假设我有一个绘制渐变的Painter实现。 渐变从白色变成黑色。 它“延伸”填满绘画区域。 因此,如果我使用这个Painter绘制一个500×500的区域,最左边的区域将是黑色,最右边是白色,并且之间将画一个平滑的渐变。 我可以不用修改,重用Painter画一个20x20的区域。 这个区域也将在左边是黑色,右边是白色,并且之间画一个平滑的渐变。
g - 要呈现的Graphics2D。
这不能为空。
object - 可选配置参数。
这可能是空的。
width - 要涂漆的区域的宽度。
height - 要涂漆的面积的高度。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.