[Solved] GUI doesn’t show up in built game

hey monkeys,



i went through the Nifty tutorials and everything worked fine. As long as i run my game in the IDE (F6) thw gui shows up. When I klick “Clean And Build Main Project” and run the MyGame.jar file only the blue cube shows up without my gui.



[java]package mygame;



import com.jme3.app.SimpleApplication;

import com.jme3.material.Material;

import com.jme3.math.ColorRGBA;

import com.jme3.math.Vector3f;

import com.jme3.niftygui.NiftyJmeDisplay;

import com.jme3.renderer.RenderManager;

import com.jme3.scene.Geometry;

import com.jme3.scene.shape.Box;

import com.jme3.system.AppSettings;

import de.lessvoid.nifty.Nifty;





public class Main extends SimpleApplication {



private MyStartScreen startScreen;



public static void main(String[] args) {

AppSettings settings = new AppSettings(true);

settings.setResolution(640, 480);

Main app = new Main();

app.setShowSettings(false); // splashscreen

app.setSettings(settings);

app.start();

}







@Override

public void simpleInitApp() {

setDisplayFps(false);

setDisplayStatView(false);









Box b = new Box(Vector3f.ZERO, 1, 1, 1);

Geometry geom = new Geometry(“Box”, b);



Material mat = new Material(assetManager, “Common/MatDefs/Misc/Unshaded.j3md”);

mat.setColor(“Color”, ColorRGBA.Blue);

geom.setMaterial(mat);



rootNode.attachChild(geom);



startScreen = new MyStartScreen();

stateManager.attach(startScreen);



NiftyJmeDisplay niftyDisplay = new NiftyJmeDisplay(

assetManager, inputManager, audioRenderer, guiViewPort);

/** Create a new NiftyGUI object /

Nifty nifty = niftyDisplay.getNifty();

/
* Read your XML and initialize your custom ScreenController /

// nifty.fromXml(“Interface/helloworld.xml”, “start”, new MySettingsScreen(data));

// attach the Nifty display to the gui view port as a processor

guiViewPort.addProcessor(niftyDisplay);

nifty.fromXml(“Interface/newNiftyGui.xml”, “start”, startScreen);

// disable the fly cam

flyCam.setDragToRotate(true);

}



@Override

public void simpleUpdate(float tpf) {

//TODO: add update code

}



@Override

public void simpleRender(RenderManager rm) {

//TODO: add render code

}

}

[/java]



[java]package mygame;



import com.jme3.app.Application;

import com.jme3.app.state.AbstractAppState;

import com.jme3.app.state.AppStateManager;

import de.lessvoid.nifty.Nifty;

import de.lessvoid.nifty.screen.Screen;

import de.lessvoid.nifty.screen.ScreenController;

public class MyStartScreen extends AbstractAppState implements ScreenController {



private Nifty nifty;

private Screen screen;

private Application app;



MyStartScreen() {

}



/
* custom methods /

public void startGame(String nextScreen) {

nifty.gotoScreen(nextScreen); // switch to another screen

// start the game and do some more stuff…

}

public void quitGame() {

app.stop();

}

public MyStartScreen(String data) {

/
* Your custom constructor, can accept arguments /

}



/
* Nifty GUI ScreenControl methods /



public void bind(Nifty nifty, Screen screen) {

this.nifty = nifty;

this.screen = screen;

}



public void onStartScreen() { }



public void onEndScreen() { }



/
* jME3 AppState methods */



@Override

public void initialize(AppStateManager stateManager, Application app) {

this.app=app;

}



@Override

public void update(float tpf) {



}



}[/java]



[xml]<?xml version=“1.0” encoding=“UTF-8”?>

<nifty xmlns=“http://nifty-gui.sourceforge.net/nifty-1.3.xsd” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://nifty-gui.sourceforge.net/nifty-1.3.xsd http://nifty-gui.sourceforge.net/nifty-1.3.xsd”>

<!-- +++++++++++++++++++++++++++++++++++++++ -->

<!-- start screen -->

<!-- +++++++++++++++++++++++++++++++++++++++ -->

<useControls filename=“nifty-default-controls.xml” />

<useStyles filename=“nifty-default-styles.xml” />

<screen id=“start” controller=“mygame.MyStartScreen”>

<layer id=“background” childLayout=“center”>

<image filename=“Interface/bubblehead.jpg”></image>

</layer>

<layer id=“foreground” backgroundColor="#0000" childLayout=“vertical”>

<panel id=“panel_top” height=“25%” width=“75%” align=“center” childLayout=“center”>

<text text=“myGamesName” font=“Interface/Fonts/Default.fnt” width=“100%” height=“100%” />

</panel>

<panel id=“panel_mid” height=“50%” width=“75%” align=“center” childLayout=“center”>

<text text=“Here goes some text describing the game and the rules and stuff. Incidentally,

the text is quite long and needs to wrap at the end of lines. …”

font=“Interface/Fonts/Default.fnt” width=“100%” height=“100%” wrap=“true” />

</panel>

<panel id=“panel_bottom” height=“25%” width=“75%” align=“center” childLayout=“horizontal”>

<panel id=“panel_bottom_left” height=“50%” width=“50%” valign=“center” childLayout=“center”>

<control name=“button” label=“Start” id=“StartButton” align=“center” valign=“center” visibleToMouse=“true”>

<interact onClick=“startGame(hud)”/>

</control>

</panel>

<panel id=“panel_bottom_right” height=“50%” width=“50%” valign=“center” childLayout=“center”>

<control name=“button” label=“Quit” id=“QuitButton” align=“center” valign=“center” visibleToMouse=“true” >

<interact onClick=“quitGame()”/>

</control>

</panel>

</panel>

</layer>



</screen>





















<screen id=“hud” controller=“mygame.MyStartScreen”>

<layer id=“background” childLayout=“center”>

<image filename=“Interface/HUD.png” width=“100%” height=“100%”/>

</layer>

<layer id=“foreground” childLayout=“horizontal”>

<panel id=“panel_left” width=“80%” height=“100%” childLayout=“vertical” >

<!-- spacer -->

</panel>

<panel id=“panel_right” width=“20%” height=“100%” childLayout=“vertical”>

<panel id=“panel_top_right” height=“100%” width=“15%” childLayout=“center”>

<control name=“label” text=“123” width=“100%” height=“100%” />

</panel>

<panel id=“panel_top_right2” width=“100%” height=“15%” childLayout=“center”>

</panel>

<panel id=“panel_bot_right” width=“100%” height=“70%” valign=“center”>

</panel>

</panel>

</layer>

</screen>

</nifty>[/xml]

finally stumbled upon this link:



http://hub.jmonkeyengine.org/groups/jmonkeyplatform/forum/topic/not-copying-library-userskwandojmonkeyprojectstestcaseassets-its-a-directory/



IDE restart fixed it. strange world… :?

Taiten - For the nifty tutorial that you posted. Did you have issues with the images the tutorial wants you to use? I see that you used “Interface/HUD.png” is that the same hud picture used in the tutorial? I am having issues figuring out where the images for the tutorial are actually located so that I can point my class path or download.