The u/v coordinates for the primitives are not well defined (they are mainly for testing purposes). I generally create my own primitives problematically and set the u/v coordinates the way I like them (particularly for planes and cubes). Here is an example you might find useful:
floor = new Object3D( 2 );
float offset = scale; // some float for sizing
floor.addTriangle( new SimpleVector( -offset, -offset, 0 ),
0, 0,
new SimpleVector( -offset, offset, 0 ), 0, 1,
new SimpleVector( offset, offset, -0 ), 1, 1,
TextureManager.getInstance().getTextureID(
"expo_bumps" ) );
floor.addTriangle( new SimpleVector( offset, offset, 0 ),
1, 1,
new SimpleVector( offset, -offset, 0 ), 1, 0,
new SimpleVector( -offset, -offset, 0 ), 0, 0,
TextureManager.getInstance().getTextureID(
"expo_bumps" ) );
This is the basic case that creates a 2-poly quad. For more polys (such as a large terrain), you can put something similar to this inside a couple for loops and use the varriables to calculate "u" and "v" (float values between 0 - 1 representing positions on the texture for each vertice).