Nifty – PaintComponent() like

Hello,
i’ve been looking for a way to draw some lines and rectangles in Nifty panel, like in the swing JPanel with PaintComponent and Graphics.DrawLine()
i would like to let user draw like a 2D plan and then create a 3D walls and so on…
After 2 days with Google i’m coming back to you for some help !
thanks

Try ImagePainter, it’s a plugin available from the SDK.

thanks for your reply, but i think ImagePainter if for drawing in the JME canvas, i want to draw such things in the Nifty panel
or is it possible to do so with ImagePainter ?

A texture is a texture. You should be able to feed the texture modified using imagepainter either into jme to use in the scene graph or into nifty to display in a panel.

http://hub.jmonkeyengine.org/forum/topic/dynamic-nifty-image/

30s in google (searched for nifty image) found both those links. You should have been able to find them too.

could you please show me an example of drawing in a nifty’s panel ? like drawing a line when mouse clicked, or smth
thanks

hello again,
i’ve got to this point
[java]ImagePainter img = new ImagePainter(Format.RGBA8, 128, 128);
img.getImageRaster().setPixel(1, 1, ColorRGBA.Blue);
// img.paintGradient(1, 1, 128, 128, ColorRGBA.Red, ColorRGBA.Green, ColorRGBA.Blue, ColorRGBA.Black, BlendMode.SET);

    RenderImageJme r = new RenderImageJme(new Texture2D(img.getImage()));
    NiftyImage nimg = new NiftyImage(nifty.getRenderEngine(), r);
    
    current = nifty.getCurrentScreen().findElementByName("2d_image");
    current.getRenderer(ImageRenderer.class).setImage(nimg);[/java] 

i can show up the image in nifty panel, but the paintGradient isn’t working ! it just get stuck on that line
also setPixel is working fine… am i missing something ?
thanks !

What you have looks correct.

What’s the error from paintGradient?

It may be as simple as using 0,0 instead of 1,1.

i used 0,0 too and it’s not working.
that’s what i get when calling paintGradient (i get the same when using all ImagePainter functions )
[java]2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker callMethod
ATTENTION: Exception: java.lang.reflect.InvocationTargetException
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: sun.reflect.NativeMethodAccessorImpl invoke0 (NativeMethodAccessorImpl.java:-2)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: sun.reflect.NativeMethodAccessorImpl invoke (NativeMethodAccessorImpl.java:39)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: sun.reflect.DelegatingMethodAccessorImpl invoke (DelegatingMethodAccessorImpl.java:25)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: java.lang.reflect.Method invoke (Method.java:597)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.NiftyMethodInvoker callMethod (NiftyMethodInvoker.java:145)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.NiftyMethodInvoker performInvoke (NiftyMethodInvoker.java:104)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty$DelayedMethodInvoke perform (Nifty.java:1176)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty invokeMethods (Nifty.java:1154)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty handleDynamicElements (Nifty.java:312)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty access$1500 (Nifty.java:73)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processEvent (Nifty.java:1371)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processMouseEvent (Nifty.java:1329)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme handleMouseEvent (InputSystemJme.java:124)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme onMouseButtonEventQueued (InputSystemJme.java:196)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme forwardEvents (InputSystemJme.java:260)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty update (Nifty.java:248)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme endInput (InputSystemJme.java:113)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.input.InputManager processQueue (InputManager.java:821)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.input.InputManager update (InputManager.java:885)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.app.Application update (Application.java:606)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.app.SimpleApplication update (SimpleApplication.java:230)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.system.lwjgl.LwjglAbstractDisplay runLoop (LwjglAbstractDisplay.java:151)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.system.lwjgl.LwjglDisplay runLoop (LwjglDisplay.java:185)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.system.lwjgl.LwjglAbstractDisplay run (LwjglAbstractDisplay.java:228)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: java.lang.Thread run (Thread.java:680)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: Root Cause: java.lang.NoSuchMethodError: com.jme3.texture.image.ImageRaster.getWidth()I
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.zero_separation.plugins.imagepainter.ImagePainter paintGradient (ImagePainter.java:483)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: hello.HellePicking afficher2D (HellePicking.java:418)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: sun.reflect.NativeMethodAccessorImpl invoke0 (NativeMethodAccessorImpl.java:-2)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: sun.reflect.NativeMethodAccessorImpl invoke (NativeMethodAccessorImpl.java:39)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: sun.reflect.DelegatingMethodAccessorImpl invoke (DelegatingMethodAccessorImpl.java:25)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: java.lang.reflect.Method invoke (Method.java:597)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.NiftyMethodInvoker callMethod (NiftyMethodInvoker.java:145)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.NiftyMethodInvoker performInvoke (NiftyMethodInvoker.java:104)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty$DelayedMethodInvoke perform (Nifty.java:1176)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty invokeMethods (Nifty.java:1154)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty handleDynamicElements (Nifty.java:312)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty access$1500 (Nifty.java:73)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processEvent (Nifty.java:1371)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl processMouseEvent (Nifty.java:1329)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme handleMouseEvent (InputSystemJme.java:124)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme onMouseButtonEventQueued (InputSystemJme.java:196)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme forwardEvents (InputSystemJme.java:260)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: de.lessvoid.nifty.Nifty update (Nifty.java:248)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.niftygui.InputSystemJme endInput (InputSystemJme.java:113)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.input.InputManager processQueue (InputManager.java:821)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.input.InputManager update (InputManager.java:885)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.app.Application update (Application.java:606)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.app.SimpleApplication update (SimpleApplication.java:230)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.system.lwjgl.LwjglAbstractDisplay runLoop (LwjglAbstractDisplay.java:151)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.system.lwjgl.LwjglDisplay runLoop (LwjglDisplay.java:185)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: com.jme3.system.lwjgl.LwjglAbstractDisplay run (LwjglAbstractDisplay.java:228)
2 mai 2013 23:35:20 de.lessvoid.nifty.NiftyMethodInvoker logException
ATTENTION: java.lang.Thread run (Thread.java:680)
[/java]