我的打算是设计一个射击型的小游戏。内容是战舰产生子弹攻击飞机,飞机和战舰都可动。
主页面MyFrame布置主页面。
其中Fighter产生飞机,但是飞机我想设计成随机产生的,产生的飞机想加载到主页面中显示。
所以我想在线程类Fighter中调用主页面中显示主菜单的JPanel(xianshi),使用xianshi.add(Fighter)方法来往主页面进行添加。
其中以下语句报错为空指针。为什么?
MyFrame中:
public class MyFrame {
public JPanel xianshi;
public JPanle getXianshi(){
xianshi=this.xianshi;
return xianshi;
}
Fighter中定义了MyFrame的对象myFrame,
this.myFrame.getXianshi().add(fighter);//调用getXianshi()的方法传入xianshi,
这句报错空指针,是什么原因?我很模糊的好像知道一点,但是不清楚,谁能帮忙说清楚一下到底为什么错了。
另外我这个思路应该怎么实现?
------解决方案--------------------
public JPanel xianshi;
啥时候初始化过这个对象的?
------解决方案--------------------
估计没有执行init(),你就调用了getXianshi(),你可以这么修改然后检查下:
public JPanle getXianshi(){
System.out.println("xianshi=" + this.xianshi);
xianshi=this.xianshi; // 话说这句话不是多此一举?根本是同一个变量。
return xianshi;
}