NiftyMethodInvoker logException in JME3 trying to call methods from another clas

So, I am making a JME3 game that is basically like first person asteroids. It is really simple and compact and works fine on its own. I am trying to add a GUI to it and so far neither the XML or the Swing Canvas ways work for me. I am asking about the XML way because the gui shows up everything is fine when I print stuff or do simple operations but when I try to access a method from a class after a button press it throws this error:

WARNING: Exception: java.lang.reflect.InvocationTargetException
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: sun.reflect.NativeMethodAccessorImpl invoke0 (NativeMethodAccessorImpl.java:-2)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: sun.reflect.NativeMethodAccessorImpl invoke (NativeMethodAccessorImpl.java:57)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: sun.reflect.DelegatingMethodAccessorImpl invoke (DelegatingMethodAccessorImpl.java:43)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: java.lang.reflect.Method invoke (Method.java:606)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.NiftyMethodInvoker callMethod (NiftyMethodInvoker.java:145)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.NiftyMethodInvoker performInvoke (NiftyMethodInvoker.java:104)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty$DelayedMethodInvoke perform (Nifty.java:1174)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty invokeMethods (Nifty.java:1152)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty handleDynamicElements (Nifty.java:354)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty access$1700 (Nifty.java:77)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processEvent (Nifty.java:1374)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processMouseEvent (Nifty.java:1329)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme handleMouseEvent (InputSystemJme.java:124)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme onMouseButtonEventQueued (InputSystemJme.java:232)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme forwardEvents (InputSystemJme.java:296)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty update (Nifty.java:288)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme endInput (InputSystemJme.java:113)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.input.InputManager processQueue (InputManager.java:819)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.input.InputManager update (InputManager.java:883)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.app.Application update (Application.java:604)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.app.SimpleApplication update (SimpleApplication.java:231)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay runLoop (LwjglAbstractDisplay.java:151)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.system.lwjgl.LwjglDisplay runLoop (LwjglDisplay.java:185)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay run (LwjglAbstractDisplay.java:228)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: java.lang.Thread run (Thread.java:744)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: Root Cause: java.lang.NullPointerException
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.material.Material <init> (Material.java:120)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3games.Pop createMaterial (Pop.java:277)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3games.Pop makeSphere (Pop.java:312)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3games.Main runMeteor (Main.java:44)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3GUI.GUIController playMeteor (GUIController.java:59)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: sun.reflect.NativeMethodAccessorImpl invoke0 (NativeMethodAccessorImpl.java:-2)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: sun.reflect.NativeMethodAccessorImpl invoke (NativeMethodAccessorImpl.java:57)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: sun.reflect.DelegatingMethodAccessorImpl invoke (DelegatingMethodAccessorImpl.java:43)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: java.lang.reflect.Method invoke (Method.java:606)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.NiftyMethodInvoker callMethod (NiftyMethodInvoker.java:145)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.NiftyMethodInvoker performInvoke (NiftyMethodInvoker.java:104)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty$DelayedMethodInvoke perform (Nifty.java:1174)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty invokeMethods (Nifty.java:1152)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty handleDynamicElements (Nifty.java:354)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty access$1700 (Nifty.java:77)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processEvent (Nifty.java:1374)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processMouseEvent (Nifty.java:1329)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme handleMouseEvent (InputSystemJme.java:124)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme onMouseButtonEventQueued (InputSystemJme.java:232)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme forwardEvents (InputSystemJme.java:296)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: de.lessvoid.nifty.Nifty update (Nifty.java:288)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.niftygui.InputSystemJme endInput (InputSystemJme.java:113)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.input.InputManager processQueue (InputManager.java:819)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.input.InputManager update (InputManager.java:883)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.app.Application update (Application.java:604)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.app.SimpleApplication update (SimpleApplication.java:231)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay runLoop (LwjglAbstractDisplay.java:151)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.system.lwjgl.LwjglDisplay runLoop (LwjglDisplay.java:185)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay run (LwjglAbstractDisplay.java:228)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: java.lang.Thread run (Thread.java:744)

with the root cause being:

WARNING: Root Cause: java.lang.NullPointerException
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: com.jme3.material.Material <init> (Material.java:120)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3games.Pop createMaterial (Pop.java:277)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3games.Pop makeSphere (Pop.java:312)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3games.Main runMeteor (Main.java:44)
Apr 28, 2014 8:22:44 PM de.lessvoid.nifty.NiftyMethodInvoker logException
WARNING: jme3GUI.GUIController playMeteor (GUIController.java:59)

So, my xml layout is fine and I have a package with the controller as such:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package jme3GUI;

import com.jme3.app.Application;

//allows switching of game modes
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager;
import de.lessvoid.nifty.Nifty;

//allows Nifty Gui to do its thing
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;

import jme3games.*;

public class GUIController extends AbstractAppState implements ScreenController {

//instance of the game class
Main main = new Main();

Application app;
AppStateManager stateManager;
Nifty nifty;
Screen screen;

public void bind(Nifty nifty, Screen screen) {
this.nifty = nifty;
this.screen = screen;
}

//required method
public void onStartScreen() {

}

//required method
public void onEndScreen() {

}

@Override
public void initialize(AppStateManager stateManager, Application app) {

super.initialize(stateManager, app);

}

//event on click
public void playMeteor() {

  //hides the gui
  nifty.gotoScreen("game");
  //nifty.exit();
  //runs the game
  main.runMeteor();

}

//event on click
public void playPong() {
//gets rid of the gui
//nifty.exit(); //go to whatever screen
//runs the game
//main.runPong();
}

//event on click
public void Exit() {
main.CloseMe();
}

}

and then I have a main file that imports my game file and it is as such:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package jme3games;

//general import for the app
import com.jme3.app.SimpleApplication;

//Nifty GUI imports
import com.jme3.niftygui.NiftyJmeDisplay;
import de.lessvoid.nifty.Nifty;
import jme3GUI.GUIController;

/**
*

  • @author Myson
    */
    public class Main extends SimpleApplication {

    //variable for the controller and gui
    GUIController myguicontroller;
    Nifty nifty;
    NiftyJmeDisplay niftyDisplay;

    //instance of the games in the same package
    Pop meteor = new Pop();
    //Pong pong = new Pong();

    public static void main(String Args[]) {
    Main app = new Main();
    app.start();
    }

    public void runPong() {
    // pong.run()
    }

    public void runMeteor() {

     //doesnt work when i try calling these methods
     //Only works if i have simple print out stuff
     meteor.makeSphere();
     meteor.makeGameElements();
    

    }//end of hide gui

    public void CloseMe() {
    System.exit(0);
    }

    public void simpleInitApp() {

     //NIFTY GUI
     myguicontroller = new GUIController();
     stateManager.attach(myguicontroller);
     
     niftyDisplay = new NiftyJmeDisplay(
             assetManager, inputManager, audioRenderer, guiViewPort);
     nifty = niftyDisplay.getNifty();
     guiViewPort.addProcessor(niftyDisplay);
     //adding the layout
     //points at the start screen from the file
     nifty.fromXml("Interface/GUILayout.xml", "start", myguicontroller);
    
     
     //nifty.setDebugOptionPanelColors(true);
     
     //makes cursor visible 
     flyCam.setDragToRotate(true);
    

    }

}

So, the error is shown when I try to make a material for my spheres and if I comment that out it just finds other things to yell at. Any help would be great.

same problem here, couldn’t start a thread on for some reason, so I’ll add to here:

I have:
[java]public class MenuAppState extends AbstractAppState implements ScreenController {[/java]
Where I layout GUI in java:
[java]nifty.addScreen(“Screen_ID”, new ScreenBuilder(“Hello Nifty Screen”){{
controller(new MenuAppState());[/java]
And create button:
[java]control(new ButtonBuilder(“btnQuit”, “Quit”){{
alignCenter();
valignCenter();
height(“5%”);
width(“15%”);
visibleToMouse(true);
interactOnClick(“quitGame()”); // <============

                }}); [/java] 

In the same class I implement quitGame() :
[java]public void quitGame() {
app.stop();
}[/java]

But when I press the button, it throws these warnings and does nothing:

On Nifty Bind On Nifty StartScreen cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker callMethod WARNING: Exception: java.lang.reflect.InvocationTargetException cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: sun.reflect.NativeMethodAccessorImpl invoke0 (NativeMethodAccessorImpl.java:-2) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: sun.reflect.NativeMethodAccessorImpl invoke (NativeMethodAccessorImpl.java:57) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: sun.reflect.DelegatingMethodAccessorImpl invoke (DelegatingMethodAccessorImpl.java:43) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: java.lang.reflect.Method invoke (Method.java:606) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.NiftyMethodInvoker callMethod (NiftyMethodInvoker.java:145) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.NiftyMethodInvoker performInvoke (NiftyMethodInvoker.java:104) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty$DelayedMethodInvoke perform (Nifty.java:1174) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty invokeMethods (Nifty.java:1152) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty handleDynamicElements (Nifty.java:354) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty access$1700 (Nifty.java:77) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processEvent (Nifty.java:1374) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processMouseEvent (Nifty.java:1329) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme handleMouseEvent (InputSystemJme.java:124) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme onMouseButtonEventQueued (InputSystemJme.java:232) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme forwardEvents (InputSystemJme.java:296) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty update (Nifty.java:288) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme endInput (InputSystemJme.java:113) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.input.InputManager processQueue (InputManager.java:819) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.input.InputManager update (InputManager.java:883) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.app.Application update (Application.java:604) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.app.SimpleApplication update (SimpleApplication.java:231) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay runLoop (LwjglAbstractDisplay.java:151) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.system.lwjgl.LwjglDisplay runLoop (LwjglDisplay.java:185) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay run (LwjglAbstractDisplay.java:228) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: java.lang.Thread run (Thread.java:744) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: Root Cause: java.lang.NullPointerException cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: mygame.states.MenuAppState quitGame (MenuAppState.java:162) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: sun.reflect.NativeMethodAccessorImpl invoke0 (NativeMethodAccessorImpl.java:-2) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: sun.reflect.NativeMethodAccessorImpl invoke (NativeMethodAccessorImpl.java:57) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: sun.reflect.DelegatingMethodAccessorImpl invoke (DelegatingMethodAccessorImpl.java:43) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: java.lang.reflect.Method invoke (Method.java:606) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.NiftyMethodInvoker callMethod (NiftyMethodInvoker.java:145) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.NiftyMethodInvoker performInvoke (NiftyMethodInvoker.java:104) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty$DelayedMethodInvoke perform (Nifty.java:1174) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty invokeMethods (Nifty.java:1152) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty handleDynamicElements (Nifty.java:354) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty access$1700 (Nifty.java:77) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processEvent (Nifty.java:1374) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processMouseEvent (Nifty.java:1329) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme handleMouseEvent (InputSystemJme.java:124) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme onMouseButtonEventQueued (InputSystemJme.java:232) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme forwardEvents (InputSystemJme.java:296) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: de.lessvoid.nifty.Nifty update (Nifty.java:288) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.niftygui.InputSystemJme endInput (InputSystemJme.java:113) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.input.InputManager processQueue (InputManager.java:819) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.input.InputManager update (InputManager.java:883) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.app.Application update (Application.java:604) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.app.SimpleApplication update (SimpleApplication.java:231) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay runLoop (LwjglAbstractDisplay.java:151) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.system.lwjgl.LwjglDisplay runLoop (LwjglDisplay.java:185) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: com.jme3.system.lwjgl.LwjglAbstractDisplay run (LwjglAbstractDisplay.java:228) cze 11, 2014 11:40:04 PM de.lessvoid.nifty.NiftyMethodInvoker logException WARNING: java.lang.Thread run (Thread.java:744)

It throws these warning whenever i call a method from quitGame.
If quitGame() is empty and I press the button, it doesn’t say anything.
When I set a variable in quitGame() in doesn’t say anything either, but it also doesn’t set the variable(?) (debugged it)

Am I doing something wrong?

Full code:

[java]package mygame.states;

import com.jme3.app.Application;
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager;
import com.jme3.asset.AssetManager;
import com.jme3.audio.AudioRenderer;
import com.jme3.input.InputManager;
import com.jme3.niftygui.NiftyJmeDisplay;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.ViewPort;
import com.jme3.scene.Node;
import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.builder.LayerBuilder;
import de.lessvoid.nifty.builder.PanelBuilder;
import de.lessvoid.nifty.builder.ScreenBuilder;
import de.lessvoid.nifty.controls.button.builder.ButtonBuilder;
import de.lessvoid.nifty.screen.DefaultScreenController;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;
import engine.base.Logger;
import mygame.MainApp;

/**
*

  • @author Alex
    */
    public class MenuAppState extends AbstractAppState implements ScreenController {

    private MainApp app;
    private Node rootNode;
    private AssetManager assetManager;
    private AppStateManager stateManager;
    private InputManager inputManager;
    private ViewPort guiViewPort;
    private AudioRenderer audioRenderer;

    NiftyJmeDisplay niftyDisplay;
    Nifty nifty;

    boolean isNiftyAttached = false;
    boolean isNiftyCreated = false;

    private void initNiftyGUI()
    {
    niftyDisplay = new NiftyJmeDisplay(assetManager, inputManager, audioRenderer, guiViewPort);
    nifty = niftyDisplay.getNifty();
    guiViewPort.addProcessor(niftyDisplay);

     isNiftyAttached = true;
     isNiftyCreated = true;
     //flyCam.setDragToRotate(true);
    
     nifty.loadStyleFile("nifty-default-styles.xml");
     nifty.loadControlFile("nifty-default-controls.xml");
     
     // &lt;screen&gt;
     nifty.addScreen("Screen_ID", new ScreenBuilder("Hello Nifty Screen"){{
         controller(new MenuAppState()); // Screen properties       
         
         // &lt;layer&gt;
         layer(new LayerBuilder("Layer_ID") {{
             childLayoutVertical(); // layer properties, add more...
    
             // &lt;panel&gt;
             panel(new PanelBuilder("Panel_ID") {{
                 childLayoutCenter(); // panel properties, add more...               
    
                 // GUI elements
                 control(new ButtonBuilder("btnQuit", "Quit"){{
                     alignCenter();
                     valignCenter();
                     height("5%");
                     width("15%");
                     visibleToMouse(true);
                     interactOnClick("quitGame()");
                     
                 }});
    
                 //.. add more GUI elements here              
    
             }});
             // &lt;/panel&gt;
         }});
         // &lt;/layer&gt;
     }}.build(nifty));
     // &lt;/screen&gt;
    
     nifty.gotoScreen("Screen_ID"); // start the screen
    

    }

    @Override
    public void initialize(AppStateManager stateManager, Application app) {
    super.initialize(stateManager, app);

     this.app = (MainApp) app; 
     this.rootNode     = this.app.getRootNode();
     this.assetManager = this.app.getAssetManager();
     this.stateManager = this.app.getStateManager();
     this.inputManager = this.app.getInputManager();
     this.guiViewPort  = this.app.getGuiViewPort();
     this.audioRenderer= this.app.getAudioRenderer();
     
     initNiftyGUI();
    

    }

    @Override
    public void cleanup() {
    super.cleanup();
    // unregister all my listeners, detach all my nodes, etc…
    if(isNiftyAttached == true)
    {
    guiViewPort.removeProcessor(niftyDisplay);
    isNiftyAttached = false;
    }
    }

    @Override
    public void setEnabled(boolean enabled) {
    // Pause and unpause
    super.setEnabled(enabled);
    if(enabled){
    // init stuff that is in use while this state is RUNNING
    if(isNiftyAttached == false && isNiftyCreated == true)
    {
    guiViewPort.addProcessor(niftyDisplay);
    isNiftyAttached = true;
    }
    } else {
    // take away everything not needed while this state is PAUSED
    if(isNiftyAttached == true)
    {
    guiViewPort.removeProcessor(niftyDisplay);
    isNiftyAttached = false;
    }
    }
    }

    // Note that update is only called while the state is both attached and enabled.
    @Override
    public void update(float tpf) {
    // do the following while game is RUNNING
    }

    @Override
    public void render(RenderManager rm) {
    }

    public void bind(Nifty nifty, Screen screen) {
    Logger.log(this, “On Nifty Bind”);
    }

    public void onStartScreen() {
    Logger.log(this, “On Nifty StartScreen”);
    }

    public void onEndScreen() {
    Logger.log(this, “On Nifty EndScreen”);
    }

    public void quitGame() {
    app.stop(); // ??? !!!
    // wrong pointer to the class???
    }
    }
    [/java]