import java.awt.*;
class DrawingPanel extends Panel {
public void paint(Graphics g) {
//绘制矩形
g.drawRect(50,50,70,70);
//绘制圆角矩形
g.drawRoundRect(110,10,50,30,20,10);

}
}
这里Graphics 的对象在哪里生成?
求助

解决方案 »

  1.   

    import java.awt.Graphics; 如果有其他的用,可能需要先先实现该类,因为是一个抽象类,然后就可以new 一个它的实例了
      

  2.   

    抽象类还能new 一个实例.初次听说
      

  3.   

    上Panel里去找,你可以看JDK代码就知道啦
      

  4.   

    不知道 我的表达有问题,还是兄台的理解有问题:
    我只说抽象类不能new,要实现汗...
      
     
      

  5.   

    无名兄弟,是我理解的不对哟,第一遍看的不表楚.呵呵.再一看,原来是先实现,再new珍惜兄:Panel的paint方法继承自Container,这是Container的paint方法
     public void paint(Graphics g) {
    if (isShowing()) {
        if (printing) {
            synchronized (this) {
        if (printing) {
            if (printingThreads.contains(Thread.currentThread())) {
        return;
    }
        }
    }
        }}
    能否指点一下,请指教
      

  6.   

    刚才帖的不完  
      public void paint(Graphics g) {
    if (isShowing()) {
        if (printing) {
            synchronized (this) {
        if (printing) {
            if (printingThreads.contains(Thread.currentThread())) {
        return;
    }
        }
    }
        }     // The container is showing on screen and
        // this paint() is not called from print().
        // Paint self and forward the paint to lightweight subcomponents.     // super.paint(); -- Don't bother, since it's a NOP.     GraphicsCallback.PaintCallback.getInstance().
            runComponents(component, g, GraphicsCallback.LIGHTWEIGHTS);
    }
        }
      

  7.   

    系统调用paint方法,由JVM构建Graphics,然后传递!
      

  8.   

    等于没说
    没有JVM,怎么创建对象和传递
      

  9.   

    这个Graphics的对象是由系统传递,并由系统实现那些抽象方法的
    并没有哪个程序去实现,因为这需要本地代码来实现
    这也是一个好处,JVM可以帮我们隐藏实现细节,我们直接用就可以了