会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 3677楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 3678楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 3679楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 3680楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 3682楼

package cn.sxt.game;


import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;


import javax.swing.JFrame;


/**

 * 飞机游戏的主窗口

 * @author 陈洁

 *

 */


public class MyGameFrame extends JFrame {

Image bg=GameUtil.getImage("images/bg.jpg");

Image planeImg=GameUtil.getImage("images/plane.png");

Plane plane=new Plane(planeImg, 250, 250);

Shell[] shells=new Shell[50];

@Override

public void paint(Graphics g) {


g.drawImage(bg,0,0,null);

plane.drawSelf(g);

for(int i=0;i<shells.length;i++){

shells[i].draw(g);

}

}

//帮助我们反复的重画窗口

class PaintThread extends Thread{

public void run(){

while(true){

repaint();

try {

Thread.sleep(40);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

//定义键盘监听的内部类

class KeyMonitor extends KeyAdapter{


@Override

public void keyPressed(KeyEvent e) {

plane.addDirection(e);



}


@Override

public void keyReleased(KeyEvent e) {

plane.minusDirection(e);


}

}

public void launchFrame(){

this.setTitle("尚学堂学员_程序猿作品");

this.setVisible(true);//默认不可见,true 可见

this.setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);//窗口大小

this.setLocation(300, 200);

this.addWindowListener(new WindowAdapter(){

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

new PaintThread().start();

addKeyListener(new KeyMonitor());//给窗口增加键盘的监听

//初始化50个炮弹

for(int i=0;i<shells.length;i++){

shells[i]=new Shell();

}

}

public static void main(String[] arge){

MyGameFrame f=new MyGameFrame();

f.launchFrame();

}


}



我运行之后 可以运行,但是下面有提示:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

at cn.sxt.game.MyGameFrame.paint(MyGameFrame.java:30)

at javax.swing.RepaintManager$3.run(RepaintManager.java:819)

at javax.swing.RepaintManager$3.run(RepaintManager.java:796)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)

at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)

at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)

at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)

at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:694)

at java.awt.EventQueue$3.run(EventQueue.java:692)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

这个是怎么回事??

JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 3683楼
JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 3684楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 3686楼


MyGame1.0.zip

老师,帮我看看我设置了炮弹的数组,数量有20个,总是出现这几个炮弹,然后我一个一个初始化,一个一个调用draw方法,还是只出现这几个球,这是为什么呢?

JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 3688楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637