Class AWTAdapter

  • All Implemented Interfaces:
    EventListener
    Direct Known Subclasses:
    AWTKeyAdapter, AWTMouseAdapter, AWTWindowAdapter

    public abstract class AWTAdapter
    extends Object
    implements EventListener
    Convenient adapter forwarding AWT events to NEWT via the event listener model.

    You may attach an instance of this adapter to an AWT Component. When an event happens, it is converted to a NEWT event and the given NEWT listener is being called.

    This adapter fullfills three use cases. First as a plain utility to write code AWT agnostic, ie write an com.jogamp.opengl.GLEvenListener and some appropriate NEWT NEWTEventListener.

    Attach the com.jogamp.opengl.GLEvenListener to a NEWT GLAutoDrawable, e.g. GLWindow,
    or to an AWT GLAutoDrawable, e.g. GLCanvas.

    Attach the NEWT NEWTEventListener to a NEWT component, e.g. Window,
    or to an AWT component, e.g. Component.

    Common:

        // your demo/render code
        com.jogamp.opengl.GLEvenListener demo1 = new com.jogamp.opengl.GLEvenListener() { ... } ;
    
        // your AWT agnostic NEWT mouse listener code
        com.jogamp.newt.event.MouseListener mouseListener = new com.jogamp.newt.event.MouseAdapter() { ... } ;
     

    Default NEWT use case, without using the AWTAdapter:

        // the NEWT GLAutoDrawable and Window
        GLWindow glWindow = GLWindow.create();
    
        // attach the renderer demo1
        glWindow.addGLEventListener(demo1);
    
        // attach the NEWT mouse event listener to glWindow
        glWindow.addMouseListener(mouseListener);
     

    AWT use case, AWTAdapter used as an AWT event translator and forwarder to your NEWT listener:

        // the AWT GLAutoDrawable and Canvas
        GLCanvas glCanvas = new GLCanvas();
    
        // attach the renderer demo1
        glCanvas.addGLEventListener(demo1);
    
        // attach the AWTMouseAdapter to glCanvas, which translates and forwards events to the NEWT mouseListener
        new AWTMouseAdapter(mouseListener).addTo(glCanvas);
     

    Previous code in detail:

        AWTMouseAdapter mouseAdapter = new AWTMouseAdapter(mouseListener);
        glCanvas.addMouseListener(mouseAdapter);
        glCanvas.addMouseMotionListener(mouseAdapter);
     

    Second use case is just a litte variation of the previous use case, where we pass a NEWT Window
    to be used as the source of the event.

        com.jogamp.newt.event.MouseListener mouseListener = new com.jogamp.newt.event.MouseAdapter() { ... } ;
    Component comp = ... ; // the AWT component
    GLWindow glWindow = GLWindow.create(); // the NEWT component

    new AWTMouseAdapter(mouseListener, glWindow).addTo(comp);

    Last but not least, the AWTAdapter maybe used as a general AWT event forwarder to NEWT.

        com.jogamp.newt.event.MouseListener mouseListener = new com.jogamp.newt.event.MouseAdapter() { ... } ;
    Component comp = ... ; // the AWT component
    GLWindow glWindow = GLWindow.create(); // the NEWT component
    glWindow.addMouseListener(mouseListener); // add the custom EventListener to the NEWT component

    new AWTMouseAdapter(glWindow).addTo(comp); // forward all AWT events to glWindow, as NEWT events

    See Also:
    #attachTo