The three specific mouse behavior classes,MouseRotate,MouseTranslate and MouseZoom, can be used to create a virtual universe in which the mouse is used for navigation. Each of the specific mouse behavior classes has a constructor that takes a single int flags parameter. When the MouseBehavior.INVERT_INPUTS is used as the argument to this constructor, the mouse behavior responds in the opposite direction.

The example program MouseNavigatorApp uses instances of the three specific mouse behavior classes for navigational interaction.

 public BranchGroup createSceneGraph(SimpleUniverse su) {

    BranchGroup objRoot = new BranchGroup();
    TransformGroup vpTrans = null;
    BoundingSphere mouseBounds = null;

    vpTrans = su.getViewingPlatform().getViewPlatformTransform();

    objRoot.addChild(new ColorCube(0.4));

    mouseBounds = new BoundingSphere(new Point3d(), 1000.0);

    MouseRotate myMouseRotate = new MouseRotate(MouseBehavior.INVERT_INPUT);
    myMouseRotate.setTransformGroup(vpTrans);
    myMouseRotate.setSchedulingBounds(mouseBounds);
    objRoot.addChild(myMouseRotate);

    MouseTranslate myMouseTranslate = new MouseTranslate(
        MouseBehavior.INVERT_INPUT);
    myMouseTranslate.setTransformGroup(vpTrans);
    myMouseTranslate.setSchedulingBounds(mouseBounds);
    objRoot.addChild(myMouseTranslate);

    MouseZoom myMouseZoom = new MouseZoom(MouseBehavior.INVERT_INPUT);
    myMouseZoom.setTransformGroup(vpTrans);
    myMouseZoom.setSchedulingBounds(mouseBounds);
    objRoot.addChild(myMouseZoom);

    objRoot.compile();

    return objRoot;
}