Thanks Mike!
I kinda think (?

) I know what you're getting at, but I'm not sure how to work it in (been trying all morning) so I will post some code and if you can give me some pointers I would be most grateful.
BoundingBox boundBox = new BoundingBox(shape.getBounds());
System.out.println("BOUNDING BOX = " + boundBox);
Point3d lower = new Point3d();
Point3d upper = new Point3d();
boundBox.getLower(lower);
boundBox.getUpper(upper);
float width = (float)(upper.x - lower.x);
float height = (float)(upper.y - lower.y);
float depth = (float)(upper.z - lower.z);
RenderingAttributes ra = new RenderingAttributes();
ra.setDepthBufferEnable(true);
ra.setIgnoreVertexColors(true);
PolygonAttributes pa = new PolygonAttributes();
pa.setCullFace(PolygonAttributes.CULL_NONE);
pa.setPolygonMode(pa.POLYGON_FILL);
TextureLoader texLoader = new TextureLoader( image,null );
texture = (Texture2D) texLoader.getTexture();
texture.setEnable(true);
TextureAttributes ta = new TextureAttributes();
ta.setTextureMode(ta.MODULATE);
Transform3D trans = new Transform3D( );
trans.setScale( 1.0 );
ta.setTextureTransform( trans );
// Setup the automatic texture coordinate generation
Vector4f planeS = new Vector4f( (float)(1.0/width), 0.0f, 0.0f, (float)(-lower.x/width));
Vector4f planeT = new Vector4f( 0.0f, (float)(1.0/height), 0.0f, (float)(-lower.y/height));
TexCoordGeneration texCoord = new TexCoordGeneration(
TexCoordGeneration.TEXTURE_COORDINATE_2, TexCoordGeneration.OBJECT_LINEAR, planeS, planeT);
Material material = new Material();
material.setLightingEnable(true);
material.setEmissiveColor(5,5,5);
Appearance a = new Appearance();
a.setRenderingAttributes(ra);
a.setPolygonAttributes(pa);
a.setTexture(texture);
a.setTextureAttributes(ta);
a.setMaterial(material);
a.setTexCoordGeneration(texCoord);
// set up
shape.setAppearance(a);
I hope thats clear