warum funkt dieses Programm nicht? (Menübar, Java 3D)

Status
Nicht offen für weitere Antworten.

Maf

Mitglied
so:
hier der Quelltext:
Code:
import javax.vecmath.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.behaviors.vp.*;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;





public class Transformat extends JFrame implements ActionListener
{

  public Canvas3D myCanvas3D;
  // Anfang Variablen

  private MenuBar jmb = new MenuBar();
  private Menu Korp = new Menu("Körper");
          MenuItem Con = new MenuItem("Kegel");
          MenuItem Wurf = new MenuItem("Würfel");
  private Menu Tran = new Menu("Transformieren");
          MenuItem Rotate = new MenuItem("Rotieren");
          MenuItem Trans = new MenuItem("Translation");
          MenuItem Skale = new MenuItem("Skalierung");
          MenuItem Scher = new MenuItem("Scherung");
  private Menu Datei = new Menu("Datei");
          MenuItem Ende = new MenuItem("Ende");
          MenuItem clear = new MenuItem("Löschen");
          
          
          
          Appearance blau = new Appearance();
          BranchGroup scene = new BranchGroup();
          Appearance rot = new Appearance ();
           BranchGroup conGroup = new BranchGroup();
           BranchGroup boxGroup = new BranchGroup();
           Transform3D ROTA = new Transform3D();
           Transform3D TRANS = new Transform3D();
           TransformGroup rota = new TransformGroup(ROTA);
           TransformGroup trans = new TransformGroup(TRANS);
  // Ende Variablen

  public Transformat()
  {


   setMenuBar(jmb);
    jmb.add(Tran);
    Tran.add(Rotate);
    Rotate.addActionListener(this);
    Tran.add(Trans);
    Trans.addActionListener(this);
    Tran.add(Skale);
    Skale.addActionListener(this);
    Tran.add(Scher);
    Scher.addActionListener(this);


    jmb.add(Korp);
    Korp.add(Con);
    Korp.add(Wurf);
    Con.addActionListener (this);
    Wurf.addActionListener (this);
    
    jmb.add(Datei);
    Datei.add(Ende);
    Datei.add(clear);
     Ende.addActionListener (this);
     clear.addActionListener (this);
     
     
    //Standardeinstellung fuer das Betrachteruniversum
    myCanvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());


    //Aufbau des SimpleUniverse:
    //Zuerst Erzeugen zusammen mit dem Canvas
    SimpleUniverse simpUniv = new SimpleUniverse(myCanvas3D);

    //Standardpositionierung des Betrachters
    simpUniv.getViewingPlatform().setNominalViewingTransform();

    //Die Szene wird in dieser Methode erzeugt.
    createSceneGraph(simpUniv);

    //Hinzufuegen von Licht
    addLight(simpUniv);


    //Hierdurch kann man mit der Maus den Betrachterstandpunkt veraendern
      OrbitBehavior ob = new OrbitBehavior(myCanvas3D);
      ob.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),Double.MAX_VALUE));
      simpUniv.getViewingPlatform().setViewPlatformBehavior(ob);


    //Darstellung des Canvas/Fensters:
    setTitle("Transformationen");
    setSize(1000,800);
    getContentPane().add("Center", myCanvas3D);
    setVisible(true);
  }

   public static void main(String[] args)
  {
     Transformat staticScene = new Transformat();
  }

  //In dieser Methode werden die Objekte der Szene aufgebaut und dem
  //SimpleUniverse su hinzugefuegt.
  public void createSceneGraph(SimpleUniverse su)
  {

    setToMyDefaultAppearance(blau,new Color3f(0.0f,0.0f,0.8f),new Color3f(0.0f,0.0f,0.5f));
    setToMyDefaultAppearance(rot,new Color3f(0.8f,0.0f,0.0f),new Color3f(0.5f,0.0f,0.0f));

    //float Kante=0.2f;
    //Cone Cone = new Cone(0.1f,0.8f,myApp);
    //Box Wuerfel = new Box(Kante,Kante,Kante,MyApp);
//*** Die Wurzel des Graphen, der die Szene enthaelt. ***

             //Die folgenden drei Zeilen erzeugen einen weißen Hintergrund.
             Background bg = new Background(new Color3f(1.0f,1.0f,1.0f));
             BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),Double.MAX_VALUE);
             bg.setApplicationBounds(bounds);
             scene.addChild(bg);
             scene.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
             scene.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
             scene.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
             scene.setCapability(BranchGroup.ALLOW_DETACH);
             boxGroup.setCapability(BranchGroup.ALLOW_DETACH);
             conGroup.setCapability(BranchGroup.ALLOW_DETACH);

            scene.addChild(rota);
            scene.addChild(trans);
             

             
             scene.compile();
             su.addBranchGraph(scene);

   }

    public static void setToMyDefaultAppearance(Appearance blau, Color3f col, Color3f col2)
  {
    blau.setMaterial(new Material(col,col2,col,col,100.0f));

  }
//  public static void setToMyDefaultAppearance(Appearance rot, Color3f col, Color3f col2)
  {

  }


   public void addLight(SimpleUniverse su)
  {

    BranchGroup bgLight = new BranchGroup();

    BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), Double.MAX_VALUE);
    Color3f lightColour1 = new Color3f(1.0f,1.0f,1.0f);
    Vector3f lightDir1  = new Vector3f(-1.0f,0.0f,-0.5f);
    DirectionalLight light1 = new DirectionalLight(lightColour1, lightDir1);
    light1.setInfluencingBounds(bounds);


    Vector3f lightDir2  = new Vector3f(0.5f,0.0f,1.0f);
    DirectionalLight light2 = new DirectionalLight(lightColour1, lightDir2);
    light2.setInfluencingBounds(bounds);


    bgLight.addChild(light1);
    bgLight.addChild(light2);

    su.addBranchGraph(bgLight);
  }
  public void actionPerformed (ActionEvent e)
  { String Klick = e.getActionCommand();

     if (Klick == "Kegel")
   {
      conGroup.addChild(new Cone(0.1f,0.8f,blau));
      scene.addChild(conGroup);
   }
    if (Klick == "Würfel")
   {
      float Kante = 0.2f;
      boxGroup.addChild(new Box(Kante,Kante,Kante,rot));
      scene.addChild(boxGroup);
   }
    if (Klick == "Rotieren")
    {
        scene.removeChild(boxGroup);
        scene.removeChild(conGroup);
        trans.removeChild(conGroup);
        trans.removeChild(boxGroup);
        rota.addChild(conGroup);
        rota.addChild(boxGroup);

        ROTA.rotZ(Math.PI/6);
         scene.addChild(rota);
    }

   if (Klick =="Translation")
   {
        scene.removeChild(boxGroup);
        scene.removeChild(conGroup);
        rota.removeChild(conGroup);
        rota.removeChild(boxGroup);
        trans.addChild(boxGroup);
        trans.addChild(conGroup);
        TRANS.setTranslation(new Vector3f(10f,10f,10f));
        scene.addChild(trans);
   }

   if (Klick == "Ende")
   {
      System.exit(0);
   }


    
  }
  
  
  
  
}
so
ob das jetz sehr effektiv ist etc. kümmere ich mich erstmal nicht.
ich möchte nur das der mir das auf klick trnslatiert und rotiert...weiss aber nicht warum das nicht funktioniert
wär nett wenn ihr mir helfen könntet
 
S

SlaterB

Gast
und du willst nicht näher beschreiben WAS nicht geht?
z.B. Fehlermeldung, ActionListener reagiert nicht, Zeichnung wird durchgeführt aber nix zu sehen oder sonstwas?


> Klick == "Kegel"

Strings vergleicht man mit equals()
 
G

Guest

Gast
ähm bei mir funkt soweit alles
nur der transformiert die dinger nich

das mit equal is mir ersma egal
das geht auch so...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
R Ist dieses Framework als Grundlage geeignet? Spiele- und Multimedia-Programmierung 8
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
P Wie kann ich einem Programm hinter eine GUI verstecken? Spiele- und Multimedia-Programmierung 12
P Programm welches auf CMD basirende Programme öffnet (Notepad), sucht , ausführt und compiliert Spiele- und Multimedia-Programmierung 23
A Code in Programm wandeln, wie? Spiele- und Multimedia-Programmierung 3
J Pong Programm Spiele- und Multimedia-Programmierung 1
J Programm "fehlerhaft" als .jar Spiele- und Multimedia-Programmierung 4
P schach programm- wo anfangen? Spiele- und Multimedia-Programmierung 13
J Programm kann Audio Datei nicht finden Spiele- und Multimedia-Programmierung 7
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
B Mein Programm reagiert nicht auf den Tasstendruck Spiele- und Multimedia-Programmierung 1
C Mein Programm wird sofort terminated Spiele- und Multimedia-Programmierung 8
A Minecraft Minecraft, Programm funktioniert nur in Eclipse richtig Spiele- und Multimedia-Programmierung 24
P Quiz-Programm Spiele- und Multimedia-Programmierung 4
F Screenshot Programm nach Exception weiterlaufen lassen? Spiele- und Multimedia-Programmierung 9
Q AudioClip hängt Programm auf Spiele- und Multimedia-Programmierung 7
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
C Minecraft Minecraft-Programm: Server anpingen Spiele- und Multimedia-Programmierung 2
J Suche 3D Programm für jMonkeyEngine Spiele- und Multimedia-Programmierung 5
S Kann mir wer verraten wie mann ein java programm Starten? Spiele- und Multimedia-Programmierung 4
U Value in Programm ändern? Spiele- und Multimedia-Programmierung 5
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
S Programm hängt sich auf wenn Lied abspielt Spiele- und Multimedia-Programmierung 4
D VOte programm aber wie ?? Spiele- und Multimedia-Programmierung 8
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
S Java 3D Szenegraph programm Spiele- und Multimedia-Programmierung 3
W Programm hängt manchmal Spiele- und Multimedia-Programmierung 5
G AffineTransform macht programm immer langsamer Spiele- und Multimedia-Programmierung 3
G Simples Programm sollte laufen? Spiele- und Multimedia-Programmierung 8
A Programm für ein Backgammon (tavli) Spiel Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben