import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame; 
import com.sun.j3d.utils.universe.*; 
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.*;
import java.awt.*; 
import javax.swing.border.*;               // For the border classes

public class HelloJava3Da extends JApplet
{
        static BranchGroup objRoot;
        public HelloJava3Da()
        {
                GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
                Canvas3D canvas3D = new Canvas3D(config);
                Container content = getContentPane();
           BorderLayout border = new BorderLayout();        // Create a layout manager
           content. setLayout(border);                    // Set the container layout mgr
                Border edge = BorderFactory.createRaisedBevelBorder();

           JButton button;
           content.add(button = new JButton("LOAD"), BorderLayout.SOUTH);
        button.setBorder(edge);

                objRoot = new BranchGroup();

                //BUTTON ACTIONLISTENER
                button.addActionListener
                (new ActionListener()
                        {
                                public void actionPerformed(ActionEvent e)
                                {
                                        System.out.println("Button clicked");
                                        objRoot.addChild(new ColorCube(0.4));
/*
                                        try
                                        {
                                                System.out.println("Button clicked");
                                                objRoot.addChild(new ColorCube(0.4));
                                        }
                                        catch (Exception ex)
                                        {
                                                System.out.println("Exception caught");
                                        }
*/
                                }
                        }
                );

                content.add(canvas3D, BorderLayout.CENTER);

                SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
                simpleU.getViewingPlatform().setNominalViewingTransform();
                simpleU.addBranchGraph(objRoot);

        } // end of HelloJava3Da (constructor)

        public static void main(String[] args)
        {
                Frame frame = new MainFrame(new HelloJava3Da(), 256, 256);
        }

} // end of class HelloJava3Da
