This is good !
 --- "H. Ding" <[EMAIL PROTECTED]> escreveu:
> Hi Alessandro and Ben,
>
> I have fixed the problem. Later I will post the code.
>
> Thanks a lot for your help. :)
>
> Ding
>
>
> > Hi Alessandro,
> >
> > Thanks a lot. I did combine the several images/icons to be one now.
> >
> > When I use this code to modify the sample code, it suppose to work. And I
> > can compile, but once run, show the:
> >
> > "Exception in thread "Thread-2" java.lang.NullPointerException"
> >
> > I think the problem is here: "texBufferedImage" should be the combined
> > image which is retured from the main().
> >
> > Texture tex = new TextureLoader(java.awt.image.BufferedImage
> > texBufferedImage).getTexture();
> >
> > According to the TextureLoader, it should be able to construct the object
> > through the "texBufferedImage", right ?
> >
> > Below is the code:
> > ===========================================================================
> > import java.awt.font.*;
> > import java.awt.geom.*;
> > import java.awt.image.*;
> > import java.io.*;
> > import java.net.*;
> > import javax.imageio.*;
> > import javax.swing.*;
> >
> > import java.applet.Applet;
> > import java.awt.*;
> > import java.awt.event.*;
> > import com.sun.j3d.utils.applet.MainFrame;
> > import com.sun.j3d.utils.universe.*;
> > import com.sun.j3d.utils.image.TextureLoader;
> > import com.sun.j3d.utils.geometry.Box;
> > import javax.media.j3d.*;
> > import javax.vecmath.*;
> >
> > public class TextureImage extends Applet {
> >
> >     private java.net.URL texImage = null;
> >  // new added
> >     private BufferedImage texBufferedImage = null;
> >             ImageComponent2D ic;
> >     private SimpleUniverse u = null;
> >
> >     public BranchGroup createSceneGraph() {
> >         // Create the root of the branch graph
> >         BranchGroup objRoot = new BranchGroup();
> >
> >         // Create the transform group node and initialize it to the
> >         // identity.  Enable the TRANSFORM_WRITE capability so that
> >         // our behavior code can modify it at runtime.  Add it to the
> >         // root of the subgraph.
> >         TransformGroup objTrans = new TransformGroup();
> >         objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
> >         objRoot.addChild(objTrans);
> >
> >         // Create appearance object for textured cube
> >         Appearance app = new Appearance();
> > //      Texture tex = new TextureLoader(texImage, this).getTexture();
> >         Texture tex = new TextureLoader(java.awt.image.BufferedImage
> > texBufferedImage).getTexture();
> > // Added new one
> >
> > //ImageComponent2D ic = new ImageComponent2D(ImageComponent.FORMAT_RGB,
> > texBufferedImage);
> > //ImageComponent2D ic = null ;
> >  //                ic.set(texBufferedImage);
> >
> >
> >
> > //Texture2D myTexture = new Texture2D();
> > //          myTexture.setImage(0, imgtest02);
> > //    app.setTexture(myTexture);
> >
> >         app.setTexture(tex);
> >         TextureAttributes texAttr = new TextureAttributes();
> >         texAttr.setTextureMode(TextureAttributes.MODULATE);
> >         app.setTextureAttributes(texAttr);
> >
> >         // Create textured cube and add it to the scene graph.
> >         Box textureCube = new Box(0.4f, 0.4f, 0.4f,
> >                                   Box.GENERATE_TEXTURE_COORDS, app);
> >         objTrans.addChild(textureCube);
> >
> >         // Create a new Behavior object that will perform the desired
> >         // operation on the specified transform object and add it into
> >         // the scene graph.
> >         Transform3D yAxis = new Transform3D();
> >         Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE,
> >                                         0, 0,
> >                                         4000, 0, 0,
> >                                         0, 0, 0);
> >
> >         RotationInterpolator rotator =
> >             new RotationInterpolator(rotationAlpha, objTrans, yAxis,
> >                                      0.0f, (float) Math.PI*2.0f);
> >         BoundingSphere bounds =
> >             new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
> >         rotator.setSchedulingBounds(bounds);
> >         objTrans.addChild(rotator);
> >
> >         // Have Java 3D perform optimizations on this scene graph.
> >         objRoot.compile();
> >
> >         return objRoot;
> >     }
> >
> >     public TextureImage() {
> >     }
> >
> >  //   public TextureImage(java.net.URL url) {
> >  //       texImage = url;
> >  //     }
> >
> >  // New added
> >  public TextureImage(BufferedImage img) {
> >         texBufferedImage = img;
> >
> >   ImageComponent2D ic = new ImageComponent2D(ImageComponent.FORMAT_RGB,
> > texBufferedImage);
> >   //      BufferedImage imgtest = ic.getImage();
> >   BufferedImage imgtest = null;
> >
> >         if (imgtest == null)
> > {
> >         System.out.println("I am here");
> >         } ;
> >         imgtest = ic.getImage();
> >         if (imgtest == null)
> > {
> >         System.out.println("not get the image to here");
> >         }
> >         else{
> >         System.out.println("then get the image to here");
> >         }
> >         ;
> >       }
> >  //   public BufferedImage TextureBufferedImage(BufferedImage img) {
> >  //     texBufferedImage = img;
> >  //   }
> >
> >     public void init() {
> >         if (texImage == null) {
> >             // the path to the image for an applet
> >             try {
> >                 texImage = new java.net.URL(getCodeBase().toString() +
> >                                             "../images/1.jpg");
> >             }
> >             catch (java.net.MalformedURLException ex) {
> >                 System.out.println(ex.getMessage());
> >                 System.exit(1);
> >             }
> >         }
> >         setLayout(new BorderLayout());
> >         GraphicsConfiguration config =
> >            SimpleUniverse.getPreferredConfiguration();
> >
> >         Canvas3D c = new Canvas3D(config);
> >         add("Center", c);
> >
> >         // Create a simple scene and attach it to the virtual universe
> >         BranchGroup scene = createSceneGraph();
> >         u = new SimpleUniverse(c);
> >
> >         // This will move the ViewPlatform back a bit so the
> >         // objects in the scene can be viewed.
> >         u.getViewingPlatform().setNominalViewingTransform();
> >
> >         u.addBranchGraph(scene);
> >     }
> >
> >     public void destroy() {
> >         u.cleanup();
> >     }
> >
> >     //
> >     // The following allows TextureImage to be run as an application
> >     // as well as an applet
> >     //
> >   //  public static void main(String[] args) {
> >   public static void main(String[] args) throws IOException {
> >         java.net.URL url = null;
> >         if (args.length > 0) {
> >             try {
> >                 url = new java.net.URL("file:" + args[0]);
> >             }
> >             catch (java.net.MalformedURLException ex) {
> >                 System.out.println(ex.getMessage());
> >                 System.exit(1);
> >             }
>
=== message truncated ===





Yahoo! Mail - Com 250MB de espaço. Abra sua conta! http://mail.yahoo.com.br/

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to