我们忽略这样为什么调用“repaint()”而不是直接调用Applet中的“paint(..)”?
public void paint(Graphics g)
{
g.drawString(msg,xpos,ypos);
}
paint方法如果我们有另一种方法可以说,到mousePressed事件方法
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()
?
简短回答:因为那样会在错误的时间或可能在错误的线程中调用(并且没有适当的图形)。 – 2012-08-07 02:57:03
当我们平常覆盖它时,我们只给出图形类的实例,没有其他的东西,为什么不合适的图形?0 – Nil 2012-08-07 02:58:31
Graphics对象必须由JVM本身在平台/操作系统的帮助下准备和交付。你不能只是试着当场做一个。 – 2012-08-07 03:04:57