AWT Input, individual input handler?

   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

As KeyInput and MouseInput are singletons jME does not support this, no. Should not be that hard to change, or make a workaround, but currently it's not possible, I think.