【发布时间】:2012-08-04 00:48:03
【问题描述】:
我们像这样重写paint方法
public void paint(Graphics g)
{
g.drawString(msg,xpos,ypos);
}
如果我们有其他方法,可以说是鼠标按下事件方法
public void mousePressed(MouseEvent me)
{
xpos=me.getX(); // msg, xpos and ypos are variables of class
ypos= me.getY();
msg="You pressed mouse";
repaint();
}
为什么我们不能叫paint(Graphics g)而不是repaint()?
【问题讨论】:
-
简短回答:因为那样它会在错误的时间或可能在错误的线程中被调用(并且没有适当的图形)。
-
当我们通常覆盖它时,我们只是给图形类的实例没有别的,为什么不合适的图形呢?0
-
Graphics 对象必须由 JVM 自己在平台/操作系统的帮助下准备和交付。您不能只是尝试当场弥补。
标签: java swing applet awt repaint