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