在AWT中重绘和setColor

时间:2009-09-20 19:04:57

标签: java awt

当我使用setColor方法时,为什么Graphics对象的repaint会重置?

3 个答案:

答案 0 :(得分:2)

seen here

  

当AWT调用此方法时,Graphics对象参数已预先配置为适合绘制此特定组件的状态:
  Graphics对象的颜色设置为组件的foreground属性。
  Graphics对象的字体设置为组件的font属性   设置Graphics对象的转换,使得坐标(0,0)表示组件的左上角。
  Graphics对象的剪辑矩形设置为需要重新绘制的组件区域。

这意味着每次调用paint / repaint方法时,您的Graphics对象始终会重置为组件属性。要保留Color(setColor),你应该在组件上而不是在Graphics对象上设置setColor。

答案 1 :(得分:0)

我猜你是在覆盖paint(Graphics)(或可能是update),而不是总是在那里设置颜色。 Component从其自己的设置中设置Graphics对象的颜色(和字体)。您收到的Graphics对象不太可能是从一个画到另一个画的同一个。

答案 2 :(得分:0)

您可以绘制图像。如果是这样:在绘制图像后,颜色将默认设置恢复为Color.BLACK