protected Canvas getGlCanvas() {
if (glCanvas == null) {
DisplaySystem display = DisplaySystem.getDisplaySystem("LWJGL");
glCanvas = display.createCanvas(width, height);
// add a listener... if window is resized, we can do something about it.
glCanvas.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent ce) {
doResize();
}
});
if(model == null)
return null;
input = new InputHandler();
/*
camhand = new CameraHandler(impl,glCanvas,display);
glCanvas.addMouseWheelListener(camhand);
glCanvas.addMouseListener(camhand);
glCanvas.addMouseMotionListener(camhand);
*/
glCanvas.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent arg0) {
((AWTKeyInput) KeyInput.get()).setEnabled(true);
((AWTMouseInput) MouseInput.get()).setEnabled(true);
}
public void focusLost(FocusEvent arg0) {
((AWTKeyInput) KeyInput.get()).setEnabled(false);
((AWTMouseInput) MouseInput.get()).setEnabled(false);
}
});
((JMECanvas) glCanvas).setUpdateInput(true);
if (!KeyInput.isInited())
KeyInput.setProvider( InputSystem.INPUT_SYSTEM_AWT );
((AWTKeyInput) KeyInput.get()).setEnabled(false);
KeyListener kl = (KeyListener) KeyInput.get();
glCanvas.addKeyListener(kl);
if (!MouseInput.isInited())
MouseInput.setProvider( InputSystem.INPUT_SYSTEM_AWT );
((AWTMouseInput) MouseInput.get()).setEnabled(false);
((AWTMouseInput) MouseInput.get()).setRelativeDelta(glCanvas);
glCanvas.addMouseListener((MouseListener) MouseInput.get());
glCanvas.addMouseWheelListener((MouseWheelListener) MouseInput.get());
glCanvas.addMouseMotionListener((MouseMotionListener) MouseInput.get());
Vector3f up = new Vector3f(0.0f, 0.0f, 1.0f);
impl = new GeometryEngine(model, width, height,glCanvas);
JMECanvas jmeCanvas = ( (JMECanvas) glCanvas );
jmeCanvas.setImplementor(impl);
jmeCanvas.setUpdateInput( true );
//
END OF GL STUFF
}
return glCanvas;
}
I have this code embedded onto a JPanel. The problem is that if i create multiple JPanel, all of them would listen to the same KeyInput and MouseInput. Is there any way to have individual input listeners for each panel that I create ?
Thanks, Dave