NiftyGui


#1

When I run the code below I get package does not exist warning with the following packages:

import com.jme3.niftygui.NiftyJmeDisplay;
import de.lessvoid.nifty.Nifty;

import de.lessvoid.nifty.screen.Screen;

import de.lessvoid.nifty.screen.ScreenController;

Does someone know how I can fix this?

/*

  • Copyright © 2009-2012 jMonkeyEngine

  • All rights reserved.

  • Redistribution and use in source and binary forms, with or without

  • modification, are permitted provided that the following conditions are

  • met:

    • Redistributions of source code must retain the above copyright
  • notice, this list of conditions and the following disclaimer.

    • Redistributions in binary form must reproduce the above copyright
  • notice, this list of conditions and the following disclaimer in the

  • documentation and/or other materials provided with the distribution.

    • Neither the name of ‘jMonkeyEngine’ nor the names of its contributors
  • may be used to endorse or promote products derived from this software

  • without specific prior written permission.

  • THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

  • “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED

  • TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

  • PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR

  • CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

  • EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

  • PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR

  • PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

  • LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

  • NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

  • SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*/

package jme3test.niftygui;

import com.jme3.app.SimpleApplication;

import com.jme3.material.Material;

import com.jme3.niftygui.NiftyJmeDisplay;

import com.jme3.scene.Geometry;
import static com.jme3.scene.control.BillboardControl.Alignment.Screen;

import com.jme3.scene.shape.Box;

import de.lessvoid.nifty.Nifty;

import de.lessvoid.nifty.screen.Screen;

import de.lessvoid.nifty.screen.ScreenController;

public class TestNiftyGui extends SimpleApplication implements ScreenController {

private Nifty nifty;



public static void main(String[] args){

    TestNiftyGui app = new TestNiftyGui();

    app.setPauseOnLostFocus(false);

    app.start();

}



@Override

public void simpleInitApp() {

    Box b = new Box(1, 1, 1);

    Geometry geom = new Geometry("Box", b);

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

    mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));

    geom.setMaterial(mat);

    rootNode.attachChild(geom);



    NiftyJmeDisplay niftyDisplay = NiftyJmeDisplay.newNiftyJmeDisplay(

            assetManager,

            inputManager,

            audioRenderer,

            guiViewPort);

    nifty = niftyDisplay.getNifty();

    nifty.fromXml("Interface/Nifty/HelloJme.xml", "start", this);



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

    guiViewPort.addProcessor(niftyDisplay);



    // disable the fly cam

// flyCam.setEnabled(false);

// flyCam.setDragToRotate(true);

    inputManager.setCursorVisible(true);

}



@Override

public void bind(Nifty nifty, Screen screen) {

    System.out.println("bind( " + screen.getScreenId() + ")");

}



@Override

public void onStartScreen() {

    System.out.println("onStartScreen");

}



@Override

public void onEndScreen() {

    System.out.println("onEndScreen");

}



public void quit(){

    nifty.gotoScreen("end");

}

}


#2

Probably you didn’t even include the nifty libraries in your project.

I suspect you need to look at the wiki and do some tutorials.


#3

What packages are on your compile-time classpath?


#4

My pre-writers already gave you the solution: You need to add the nifty-library to your classpath. It is not added by default.