刚学完java基础,这段代码谁帮我答疑啊?
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class G1P1 extends JFrame{
//设置游戏屏幕参数
      final int WIDTH = 900, HEIGHT = 650;
       //通过构造方法设置JFrame
      public G1P1(){      
super("跑道!");      
setSize(WIDTH/9*10,HEIGHT/9*10);      
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      
setVisible(true);
      }
      public void paint(Graphics g){      /*这个地方不懂,为什么主方法没调用它,它却执行了?,而且                                                                                                              
super.paint(g);                          paint(Graphics g)中的参数对象g在主方法中也没被实例化 */                                 
g.setColor(Color.white);                       
g.fillRect(0, 0, WIDTH, HEIGHT);      
g.setColor(Color.DARK_GRAY);      
//现在绘制各矩形      
g.fillRect(0,0,WIDTH/9,HEIGHT);      
g.fillRect((WIDTH/9)*9,0,WIDTH/9,HEIGHT);      
g.fillRect(0,0,WIDTH,HEIGHT/9);      
g.fillRect(0,(HEIGHT/9)*9,(WIDTH/9)*10,HEIGHT/9);      
g.fillRect((int)((WIDTH/9)*2.5),(int)((HEIGHT/9)*2.5),(int)((WIDTH/9)*5),(int)((HEIGHT/9)*4));      
g.fillRect(WIDTH/2,(int)((HEIGHT/9)*7),WIDTH/10,HEIGHT/9);      
g.fillRect(WIDTH/3,(int)((HEIGHT/9)*5),WIDTH/10,HEIGHT/4);      
g.fillRect(2*(WIDTH/3),(int)((HEIGHT/9)*5),WIDTH/10,HEIGHT/4);      
g.fillRect(WIDTH/3,HEIGHT/9,WIDTH/10,HEIGHT/9);      
g.fillRect(WIDTH/2,(int)((HEIGHT/9)*1.5),WIDTH/30,HEIGHT/4);
      }
      public static void main(String[] args){      
new G1P1();
      }
}
------解决方案--------------------
public void paint(Graphics g)
这是JFrame的祖先类Component类中定义的方法
你在这里等于是重写了该方法
在JFrame及其各个祖先类中,自然有调用到这个方法的地方
你去看看源代码就明白了