如果要做图,就要override Component类中的paint方法系统就会在这个方法中调用你的代码来作图
,呵呵.

解决方案 »

  1.   

    import java.awt.*;
    class DrawingPanel extends Panel{
         
         public void paint(Graphics g){
          g.draw3DRect(100,100,70,70,true);
       
         }
    }
    public class Drawing{
    private Frame f;
    private Panel p;
    public Drawing()
    {
    f = new Frame("Drawing a graphic");
    p = new DrawingPanel();
    f.add(p);
    f.setSize(200,200);
    f.setVisible(true);
    }
    public static void main(String[] args)
        {
           Drawing d = new Drawing();
           
        }
    }只要new 一个Panel实例,就会自动调用其中的paint方法
      

  2.   

    回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法,便会发现函数指针的声明与函数声明非常类似。
    最典型的回调函数当属 WinProc 刚然还有别的例如EnumWindowsProc而Java里的这种做法是不一样的,以Swing为例吧
    比如JPanel里的paint地实现是来自于JComponent
    里面又使用到了三个方法paintComponent, paintBorder, paintChildren
    而这三个方法的又会调用其他的方法,而其他方法很可能由于不同的子类而不同。
    这就是类的多态。
    而调用paint方法的内在机理是和回调函数相似的。在Java中,要实现回调得最好办法是使用接口
    这一点你再用 SAX 解析XML的时候就会深有感触。一家之言 :)
      

  3.   

    public interface Serializable {
    }
    对象序列化接口没有任何方法,是怎么实现的