English 中文(简体)
一些扩展小程序的代码
原标题:some code which extends applet
  • 时间:2010-03-03 03:26:41
  •  标签:
  • java
  • applet

这是我的法典(为做到这一点而表示歉意),我确实需要您的帮助,请让我帮助我,我如何能够从这一方法中删除传单。 我也不喜欢使用小册子,而我也开始做一些事情,但这样做不成事实。 感谢

  public class RedGreenGriffin extends Applet {

    protected Canvas3D c1 = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
   // private Canvas3D c2 = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
    private static MainFrame mf;
    protected SimpleUniverse u = null;
    protected BranchGroup scene = null;
    protected String URLString = "http://www.java3d.org/saurus.obj";
    protected float eyeOffset =0.03F;
    protected static int size=600;
    public void init() {
        setLayout(new FlowLayout());
        GraphicsConfiguration config =
           SimpleUniverse.getPreferredConfiguration();
        String v = getParameter("url");
        if (v != null) { URLString = v; }
        c1.setSize(size, size);
        add(c1);
        scene = createSceneGraph(0);
        u = new SimpleUniverse(c1);
        // This will move the ViewPlatform back a bit so the
        // objects in the scene can be viewed.
        //u.getViewingPlatform().setNominalViewingTransform();
        u.addBranchGraph(scene);

    }
public BranchGroup createSceneGraph(int i) {
    System.out.println("Creating scene for: "+URLString);
    // Create the root of the branch graph
    BranchGroup objRoot = new BranchGroup();
    try{
        Transform3D myTransform3D = new Transform3D();
        myTransform3D.setTranslation(new Vector3f(+0.0f,-0.15f,-3.6f));
        TransformGroup objTrans = new TransformGroup(myTransform3D);
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        Transform3D t = new Transform3D();
        TransformGroup tg = new TransformGroup(t);
        tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        objTrans.addChild(tg);
        URL url = new URL(URLString) ;
        ObjectFile f = new ObjectFile();
        f.setFlags(ObjectFile.RESIZE | ObjectFile.TRIANGULATE | ObjectFile.STRIPIFY);
        System.out.println( "About to load" );

        Scene s = f.load(url);
        Transform3D myTrans = new Transform3D();
        myTrans.setTranslation(new Vector3f(eyeOffset, -eyeOffset, 0F));
        TransformGroup mytg = new TransformGroup(myTrans);
        //mytg.addChild(s.getSceneGroup());
        tg.addChild(mytg);
        Transform3D myTrans2 = new Transform3D();
        myTrans2.setTranslation(new Vector3f(-eyeOffset, +eyeOffset, 0F));
        TransformGroup mytg2 = new TransformGroup(myTrans2);
        //mytg2.addChild(s.getSceneGroup());
        Hashtable table = s.getNamedObjects();
        for (Enumeration e = table.keys() ; e.hasMoreElements() ;) {
        Object key = e.nextElement();
        System.out.println(key);
        Object obj = table.get(key);
        System.out.println(obj.getClass().getName());
        Shape3D shape  = (Shape3D)obj;
        //shape.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
        Appearance ap = new Appearance();
        Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
        Color3f red = new Color3f(0.7f, .0f, .15f);
        Color3f green = new Color3f(0f, .7f, .15f);
        ap.setMaterial(new Material(green,black, green, black, 1.0f));
        Appearance ap2 = new Appearance();
        ap2.setMaterial(new Material(red, black, red, black, 1.0f));
        float transparencyValue = 0.5f;
        TransparencyAttributes t_attr =
            new TransparencyAttributes(
            TransparencyAttributes.BLENDED,
            transparencyValue,
            TransparencyAttributes.BLEND_SRC_ALPHA,
            TransparencyAttributes.BLEND_ONE);
        ap2.setTransparencyAttributes( t_attr );
        ap2.setRenderingAttributes( new RenderingAttributes() );
        ap.setTransparencyAttributes( t_attr );
        ap.setRenderingAttributes( new RenderingAttributes() );
        // bg.addChild(ap);
        shape.setAppearance(ap);
        mytg2.addChild(new Shape3D(shape.getGeometry(),ap2));
        mytg.addChild(new Shape3D(shape.getGeometry(),ap));
    }
    tg.addChild(mytg2);
    System.out.println( "Finished Loading" );
    BoundingSphere bounds =
        new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
    Color3f light1Color = new Color3f(.9f, 0.9f, 0.9f);
    Vector3f light1Direction  = new Vector3f(4.0f, -7.0f, -12.0f);
    DirectionalLight light1
    = new DirectionalLight(light1Color, light1Direction);
    light1.setInfluencingBounds(bounds);
    objTrans.addChild(light1);
            // Set up the ambient light
    Color3f ambientColor = new Color3f(1.0f, .4f, 0.3f);
    AmbientLight ambientLightNode = new AmbientLight(ambientColor);
    ambientLightNode.setInfluencingBounds(bounds);
    objTrans.addChild(ambientLightNode);


    MouseRotate behavior = new MouseRotate();
    behavior.setTransformGroup(tg);
    objTrans.addChild(behavior);
      // Create the translate behavior node
    MouseTranslate behavior3 = new MouseTranslate();
    behavior3.setTransformGroup(tg);
    objTrans.addChild(behavior3);
    behavior3.setSchedulingBounds(bounds);

    KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(tg);
    keyNavBeh.setSchedulingBounds(new BoundingSphere(
        new Point3d(),1000.0));
    objTrans.addChild(keyNavBeh);

    behavior.setSchedulingBounds(bounds);
    objRoot.addChild(objTrans);
    } catch(Throwable t){System.out.println("Error: "+t);}
    return objRoot;
}
public RedGreenGriffin() {
}
public void destroy() {
    u.removeAllLocales();
}

public static void main(String[] args) {

    RedGreenGriffin s = new RedGreenGriffin();
    if (args.length > 0) {
        s.URLString = args[0];
    }
    mf = new MainFrame(s, size, size);
}
}
问题回答

如果想在Swing中构建独立的GUI应用程序,应将内容放入JFrame而不是Applet中。

有其他 GUI 框架可用于构建独立的 Java GUI 应用程序,但 Swing 是最受欢迎的,您可能会找到最有帮助的文档(包括在此处的 Stack Overflow 上 :-))。

我会从将extends Applet改为extends JFrame开始。

However, a JFrame doesn t need or use a public void init() method, so you ll want to move that code somewhere else. With only the goal of making this a GUI program, my suggestion is to either:

  • rename your init() method to frameInit()
  • ... or just move the code in init() into the constructor.




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签