classes.add( TestOBBPick.class );
    public static void main( String[] args ) {        try {            UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );        } catch ( Exception e ) {            //ok, keep the ugly one then :\        }        try {            TestChooser chooser = new TestChooser();            final Vector classes = new Vector();            System.out.println( "Composing Test list..." );            Sys.class.getName(); //to check loading lwjgl library            //put some featured tests at the beginning            classes.add( TestCloth.class );            classes.add( TestEnvMap.class );            classes.add( TestMultitexture.class );            classes.add( TestParticleSystem.class );            classes.add( TestDynamicSmoker.class );            classes.add( TestFireMilk.class );            classes.add( TestBoxColor.class );            classes.add( TestLightState.class );            classes.add( TestRenderQueue.class );            classes.add( TestScenegraph.class );            classes.add( TestBezierMesh.class );            classes.add( TestBezierCurve.class );            classes.add( TestPQTorus.class );            classes.add( TestAnisotropic.class );            classes.add( TestCollision.class );            classes.add( TestOBBTree.class );            classes.add( TestPick.class );            classes.add( TestImposterNode.class );            classes.add( TestRenderToTexture.class );            classes.add( TestCameraMan.class );            classes.add( TestFragmentProgramState.class );            classes.add( TestGLSLShaderObjectsState.class );            classes.add( TestVertexProgramState.class );            classes.add( TestAutoClodMesh.class );            classes.add( TestDiscreteLOD.class );            classes.add( TestASEJmeWrite.class );            classes.add( TestMaxJmeWrite.class );            classes.add( TestMd2JmeWrite.class );            classes.add( TestMilkJmeWrite.class );            classes.add( TestObjJmeWrite.class );            classes.add( TestSkybox.class );            classes.add( TestTerrain.class );            classes.add( TestTerrainLighting.class );            classes.add( TestTerrainPage.class );            chooser.find( "jmetest", true, classes );            chooser.setup( classes );            Class cls;            do {                chooser.setVisible(true);                cls = chooser.getSelectedClass();                if ( cls != null ) {                    try {                        final Method method = cls.getMethod( "main", new Class[]{String[].class} );                        method.invoke( null, new Object[]{args} );                    } catch ( NoSuchMethodException e ) {                        //should not happen (filtered non-main classes already)                        e.printStackTrace();                    } catch ( IllegalAccessException e ) {                        //whoops non-public / non-static main method ?!                        e.printStackTrace();                    } catch ( InvocationTargetException e ) {                        //exception in main                        e.printStackTrace();                    }                }            } while ( cls != null );            System.exit( 0 );        } catch ( UnsatisfiedLinkError e ) {            e.printStackTrace();            JOptionPane.showMessageDialog( null, "A required native library could not be loaded.\n" +                    "Specifying -Djava.library.path=./lib when invoking jME applications " +                    "or copying native libraries to your Java bin directory might help.\n" +                    "Error message was: " + e.getMessage(), "Error loading library", JOptionPane.ERROR_MESSAGE );            System.exit(-1);        }    }