import java.awt.*; 
import javax.swing.*; public class Pascal extends JFrame { 
    public Pascal() { 
        setBackground(Color.white); 
        setTitle("巴斯卡三角形"); 
        setSize(520, 350); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        show(); 
    }       public void paint(Graphics g) { 
       //略过...    
}     public static void main(String args[]) { 
        Pascal frm = new Pascal(); 
    } 
}上面的程序可以正常运行,想问paint方法是怎么被构造函数的show()调用的啊?

解决方案 »

  1.   

    GUI painting is a complex procedure!
    You can refer to the source code of AWT/SWING,but i suggest you read some
    documents on www.sun.com!
      

  2.   

    paint应该是回调吧.不需要你调用的.
    在需要重绘的地方JVM会自动调用的.
      

  3.   

    回楼上的:但是如果去掉show(),图形是显示不出来的。
    是不是说jvm调用paint后,图形已经绘制好了,只是不显示出来,而show()是起调出窗口显示的作用?
      

  4.   

    1.Pascal frm = new Pascal(); 
    在JVM中内存分配一块空间给这个对象
    2.      setBackground(Color.white); 
            setTitle("巴斯卡三角形"); 
            setSize(520, 350); 
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    是对已经存在的对象进行“加工”
    3.show(); 
    是一个动做
    你也可以理解成,你的房子的一个房间里造车,并且给车子涂了油漆,取了名字,如果不拿出来show()一下,谁能够看到你的成功呢!?
    呵呵