I didn't know where to put this. I figured since it involved applets it would work here, because it has more to do with the SimpleJMEApplet class more then anything. I'll start off with providing the source, pretty simple:
public class Main extends SimpleJMEApplet {
private Spatial t;
public void simpleAppletSetup() {
t = new Box("Box", new Vector3f(0,0,0),1,1,1);
t.setModelBound(new BoundingBox());
t.updateModelBound();
getRootNode().attachChild(t);
JButton button = new JButton("Click!");
this.add(button);
}
}
Adds a box and a Swing button. Not too complicated. But the problem is I run this, and I can't see my button! Do I have to enable something, or did I add it wrong? :-o
public void performAction(InputActionEvent evt) {
guiNode.updateRenderState();
}
});
}
});
guiNode.setCullHint(Spatial.CullHint.Never);
guiNode.setLightCombineMode(Spatial.LightCombineMode.Off);
guiNode.updateRenderState();
guiNode.updateGeometricState(0, true);
t = new Box("Box", new Vector3f(0, 0, 0), 1, 1, 1);
t.setModelBound(new BoundingBox());
t.updateModelBound();
getRootNode().attachChild(t);
}
public void simpleAppletRender() {
getRenderer().draw(guiNode);
}
}
And the error:
Exception in thread "AWT-EventQueue-1" java.lang.Error: Cannot call invokeAndWait from the event dispatcher thread
at java.awt.EventQueue.invokeAndWait(EventQueue.java:980)
at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1323)
at com.jmex.awt.swingui.JMEDesktop.onButton(JMEDesktop.java:452)
at com.jmex.awt.swingui.JMEDesktop$ButtonAction.performAction(JMEDesktop.java:1172)
at com.jme.input.ActionTrigger.performAction(ActionTrigger.java:264)
at com.jme.input.InputHandler.processTriggers(InputHandler.java:426)
at com.jme.input.InputHandler.update(InputHandler.java:411)
at com.jme.input.InputHandler.updateAttachedHandlers(InputHandler.java:440)
at com.jme.input.InputHandler.update(InputHandler.java:412)
at com.jmex.awt.applet.SimpleJMEApplet$SimpleAppletCanvasImplementor.simpleUpdate(SimpleJMEApplet.java:340)
at com.jme.system.canvas.SimpleCanvasImpl.doUpdate(SimpleCanvasImpl.java:135)
at com.jmex.awt.lwjgl.LWJGLCanvas.paintGL(LWJGLCanvas.java:130)
at org.lwjgl.opengl.AWTGLCanvas.paint(AWTGLCanvas.java:290)
at org.lwjgl.opengl.AWTGLCanvas.update(AWTGLCanvas.java:321)
at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
at sun.awt.RepaintArea.paint(RepaintArea.java:216)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:301)
at java.awt.Component.dispatchEventImpl(Component.java:4489)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Thanks for any help in advance, I need to get this working.