0
所以我现在正在制作一个塔防游戏的问题。我已经发布了部分代码,下面是我遇到的错误。绘制方法的问题
它的概要是我用mainMenu开始游戏,它有一个进入charMenu或退出游戏的按钮。这个屏幕加载完美。
现在,当我点击进入charMenu时,我在行“charMenu.draw(g)”上得到一个NullPointerException。如果我只创建一个菜单并删除另一个的代码,它对两者都可以正常工作,但是如果我尝试启用它们的代码,我会得到该错误并且无法调试它可能会发生的任何问题是。
public class Screen extends JPanel implements Runnable {
public static boolean isMainMenu = true;
public static boolean isCharacterMenu = false;
public static MainMenu mainMenu;
public static CharMenu charMenu;
public void paintComponent(Graphics g) {
if(isMainMenu && !isCharacterMenu){ // Draws the Main Menu
mainMenu.draw(g);
}
if(isCharacterMenu && !isMainMenu){
charMenu.draw(g);
}
if(!isMainMenu && !isCharacterMenu){
//draws the actual game board.
}
}
public void run() {
while(true) {
if(isMainMenu && !isCharacterMenu){//The Main Menu
mainMenu = new MainMenu();
}
if(isCharacterMenu && !isMainMenu)
charMenu = new CharMenu();
if(!isMainMenu && !isCharacterMenu) {
//runs the game board
}
会发生什么事,然后是创建两个菜单同时互相叠加而不是在被呼叫时分开创建。 – cjr 2012-08-11 23:05:02
哦,我只是想着abt解决NPE ......让我再看看你的代码的实际逻辑 – MimiEAM 2012-08-11 23:08:03
是的,它解决了NPE但创建了一个不同的问题。基本上,我试图做的是有2个不同的菜单,可以访问对方。 – cjr 2012-08-11 23:09:22