读书人

刚学完java基础这段代码哪位高手帮小

发布时间: 2011-12-29 22:09:38 作者: rapoo

刚学完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及其各个祖先类中,自然有调用到这个方法的地方
你去看看源代码就明白了

读书人网 >J2SE开发

热点推荐