Hi Alex,

Try the attached code and see if that is what you
are looking for.  The code is within init(), but
you could improve it by creating a self-contained
JPanel as a subclass of JPanel that will add the
text or events or both, then add it to a part of
the layout of the Container (in this case a JApplet).

Hope this helps. Regards,

Alejandro

-----Original Message-----
From: Discussion list for Java 3D API
[mailto:JAVA3D-INTEREST@;JAVA.SUN.COM]On Behalf Of Alex
Sent: Thursday, October 24, 2002 1:23 AM
To: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] Swing component on Canvas3D


Hi All,

Actually, all I want to do is to add a translucent JTextArea onto the
Canvas3D. I need the Canvas3D to be the background for this JTextArea. Is
there any alternatives for me to achieve this?

Thanks in Advance.

- Alex -

----- Original Message -----
From: "Alejandro Allievi" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 24, 2002 2:42 AM
Subject: Re: [JAVA3D] Swing component on Canvas3D


> Hi,
>
> I agree with Peter.
>
> As a general rule, avoid "mixing" GUI components
> and graphics by placing them in different JPanels (or subclasses of it).
> This minimizes chances of GUI components and/or graphics not displaying
> properly.
>
> Regards,
>
> Alejandro
>
> -----Original Message-----
> From: Discussion list for Java 3D API
> [mailto:JAVA3D-INTEREST@;JAVA.SUN.COM]On Behalf Of Peter Szinek
> Sent: Wednesday, October 23, 2002 5:25 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [JAVA3D] Swing component on Canvas3D
>
>
> Hello Alex,
>
> Wednesday, October 23, 2002, 09:59:19, you wrote:
>
> A> Hi all,
>
> A> Is it possible to add a swing component, say a JTextArea onto a
Canvas3D?
> If its possible, how do I go about adding them?
>
> Are you sure you need to add it on the *Canvas3D*?
> Wouldn't be sufficient to add it below/over/right/left of the Canvas on
the
> Panel/Frame/Apple/whatever?
>
> I am not even sure at all you can add swing components on the canvas.
>
> However, if you are talking about adding GUI, try something like this:
>
> ...
>
> setLayout( new BorderLayout() );
>
> Canvas3D canvas = new Canvas3D(...);
> JPanel guiPanel = new JPanel();
>
> add(guiPanel, BorderLayout.EAST);
> add (canvas, BorderLayout.CENTER);
>
> ...
>
> Then add everything to guiPanel as usual.
>
> A> Thanks in advance.
>
> A> - Alex -
>
>
>
> --
> Best regards,
>  Peter                            mailto:szyp@;pobox.sk
>
>
===========================================================================
> 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".
>
>
===========================================================================
> 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".
>

===========================================================================
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".
/*
 *      @(#)HelloUniverse.java 1.54 02/04/01 15:03:11
 *
 * Copyright (c) 1996-2002 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * - Redistribution in binary form must reproduce the above copyright
 *   notice, this list of conditions and the following disclaimer in
 *   the documentation and/or other materials provided with the
 *   distribution.
 *
 * Neither the name of Sun Microsystems, Inc. or the names of
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * This software is provided "AS IS," without a warranty of any
 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
 * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * You acknowledge that Software is not designed,licensed or intended
 * for use in the design, construction, operation or maintenance of
 * any nuclear facility.
 */

import javax.swing.JApplet;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import java.awt.Color;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class HelloUniverseText extends JApplet {

    private SimpleUniverse u = null;
    
    public BranchGroup createSceneGraph() {
        // Create the root of the branch graph
        BranchGroup objRoot = new BranchGroup();

        // Create the TransformGroup node and initialize it to the
        // identity. Enable the TRANSFORM_WRITE capability so that
        // our behavior code can modify it at run time. Add it to
        // the root of the subgraph.
        TransformGroup objTrans = new TransformGroup();
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        // A call to objTrans.setTransform() is now legal!!
        objRoot.addChild(objTrans);

        // Create a simple Shape3D node; add it to the scene graph.
        objTrans.addChild(new ColorCube(0.4));
        Point3f point[] = new Point3f[90];

        // Create a new Behavior object that will perform the
        // desired operation on the specified transform and add
        // it into the scene graph.
        Transform3D yAxis = new Transform3D();
        Alpha rotationAlpha = new Alpha(-1, 10000);

        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);
        objRoot.addChild(rotator);

        // Have Java 3D perform optimizations on this scene graph.
        objRoot.compile();

        return objRoot;
    }

    public HelloUniverseText() {
    }

    public void init() {
        getContentPane().setLayout(new BorderLayout()); 
        // Need getContentPane() for JApplet
        GraphicsConfiguration config =
           SimpleUniverse.getPreferredConfiguration();

        Canvas3D c = new Canvas3D(config);
        getContentPane().add("Center", c); // Need getContentPane() for JApplet
	
        JPanel jpTop = new JPanel();
        jpTop.setBackground(new Color(0,0,0));
        JTextArea jtTop = new JTextArea("This is TOP text for HelloUniverse");
        jtTop.setForeground(new Color(255,255,255));
        jtTop.setBackground(new Color(0,0,0));
        jpTop.add(jtTop);
        getContentPane().add("North", jpTop);

        JPanel jpBottom = new JPanel();
        jpBottom.setBackground(new Color(0,0,0));
        JTextArea jtBottom = new JTextArea("This is BOTTOM text for HelloUniverse");
        jtBottom.setForeground(new Color(255,255,255));
        jtBottom.setBackground(new Color(0,0,0));
        jpBottom.add(jtBottom);
        getContentPane().add("South", jpBottom);

        // 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.removeAllLocales();
    }

    //
    // The following allows HelloUniverse to be run as an application
    // as well as an applet
    //
    public static void main(String[] args) {
        new MainFrame(new HelloUniverseText(), 256, 256);
    }
}

Reply via email to