Така че имам проблем с игра отбранителна кула, която правя в момента. Публикувах части от кода по-долу, с които имам грешка.
Изводът от това е, че стартирам играта с главното меню, което има бутон за влизане в charMenu или излизане от играта. Този екран се зарежда перфектно.
Сега, когато щракна, за да отида в charMenu, получавам NullPointerException на реда "charMenu.draw(g)". Ако създам само едно от менютата и премахна кода за другото, то работи добре и за двете, но ако се опитам да активирам кода и за двете, получавам грешката и нямам представа от отстраняването на грешки какво би могло бъда.
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
}