# Einstieg erfolgreich ;), nun nur noch paar Fragen^^



## HaukederAnfänger (23. Jul 2007)

Hallo!
Da dies mein erster Beitrag ist, möchte ich mich kurz vorstellen. Ich bin 23 Jahre, männlich, studiere Medizinische Technik und fange nun an mich mit Java/J3D zu beschäftigen, da ich nun eine HiWi Stelle antrete, bei der ich damit arbeiten muss.

Nun habe ich die Entwicklungsumgebung Eclipse und alle (soweit ich weiß) benötigten "Dinge" installiert JRE, JAVA 3D API, ... und in PATH eingebunden.

Ich habe gerade einen Quellcode aus einem Tutorial spaßeshalber in Eclipse geladen und wollte ihn kompilieren, jedoch erkennt er irgendwie manche Sachen (Klassen) nicht...und hat auch ein Problem mit main...nun weiß ich ned, woran es liegen önnte, da ich auch ganz frisch in Java generell eingestiegen bin.

Der Quellcode + Fehler:

```
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
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.*;


public class HelloJava3Da extends Applet {
public HelloJava3Da() {
setLayout(new BorderLayout());
Canvas3D canvas3D = new Canvas3D(null);
add("Center", canvas3D);
 BranchGroup scene = createSceneGraph();
scene.compile();
 // SimpleUniverse is a Convenience Utility class
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
simpleU.getViewingPlatform().setNominalViewingTransform();
simpleU.addBranchGraph(scene); } // end of HelloJava3Da (constructor)

public BranchGroup createSceneGraph() {
// Create the root of the branch graph
BranchGroup objRoot = new BranchGroup();
objRoot.addChild(new ColorCube(0.4));
return objRoot;
} // end of createSceneGraph method of HelloJava3Da
} // end of class HelloJava3Da
```

Warnung: AppletViewer-Eigenschaftendatei kann nicht gelesen werden: C:\Dokumente und Einstellungen\Admin\.hotjava\properties Standardwerte werden verwendet.
java.lang.ClassNotFoundException: HelloJava3Da.class
	at sun.applet.AppletClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadCode(Unknown Source)
	at sun.applet.AppletPanel.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: C:\JavaProgs\3D\HelloJava3Da\class.class (Das System kann den angegebenen Pfad nicht finden)Laden: Klasse HelloJava3Da.class nicht gefunden

	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
	at sun.applet.AppletClassLoader.getBytes(Unknown Source)
	at sun.applet.AppletClassLoader.access$100(Unknown Source)
	at sun.applet.AppletClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	... 9 more






Wäre cool, falls mir jemand helfen könnte


----------



## merlin2 (23. Jul 2007)

Gelöscht (hier stand Schwachsinn).


----------



## HaukederAnfänger (24. Jul 2007)

Hi, kann jemand noch etwas dazu sagen - wichtig. Es öffnet sich zwar auch ein Fensterchen aber es steht dann "Applet nicht initalisiert"...


----------



## Quaxli (24. Jul 2007)

Dein Applet enthält keine init-Methode. Du solltest Dich mal zum Thema Applets einlesen...

Bei www.javacore.de findest Du ein gutes Tutorial, daß mir auch gut gefallen hat. Schau Dir das mal an, das sollte Dir weiter helfen.


----------



## HaukederAnfänger (24. Jul 2007)

Ah, ok, danke schön...wurde irgendwie in meinem Tutorial nichts erwähnt von 

Kannst du mir denn dennoch kurz eiterhelfen? Wie kann ich das Applet initalisieren?


----------



## Marco13 (24. Jul 2007)

Irgendwie glaube ich nicht, dass das am Quellcode direkt liegt - der sollte (auch ohne init-Methode) OK sein. Die Zeile
_
Caused by: java.io.FileNotFoundException: C:\JavaProgs\3D\HelloJava3Da\*class.class*
_
sieht irgendwie komisch aus  ???:L (Vielleicht irgendwelche falschen Einstellung bei Eclipse? Kenn mich damit leider nicht aus...)

Hast du mal versucht, das per Hand zu starten und zu compilieren?
javac HelloJava3Da.java
appletviever MeinApplet.html

Wobei in der MeinApplet.html sowas steht wie

```
<!DOCTYPE HTML><HTML><HEAD></HEAD><BODY>
<APPLET CODE="HelloJava3Da.class" CODEBASE="." WIDTH=400 HEIGHT=300></APPLET>
</BODY></HTML>
```


----------



## Quaxli (24. Jul 2007)

Ich habe  auch mal eine Weile mit Java3D rum gespielt und ein ähnliches Anfängerprogramm gebaut.
Hier mal der Code:


```
import java.applet.Applet;
import java.awt.*;

import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;


public class Universe2 extends Applet {

	private static final long	serialVersionUID	= 1L;
	private SimpleUniverse su = null;

	public static void main(String[] args) {
    new MainFrame(new Universe2(),400,400);
	}

	public Universe2(){
		
	}
	
	public void init(){
		
		setLayout(new BorderLayout()); //Layout im Applet setzen
		GraphicsConfiguration gc = SimpleUniverse.getPreferredConfiguration(); //GraphicsConfiguration abholen
		
		Canvas3D canvas = new Canvas3D(gc); //Canvas3D ist die Zeichenfläche. Mit GraphicsObject erezugen
		add(canvas,BorderLayout.CENTER);// hinzufügen
		su = new SimpleUniverse(canvas); //Universum erzeugen
		
		su.getViewingPlatform().setNominalViewingTransform(); //Verschiebt ViewingPlatform = Beobachter etwas vom Nullpunkt
		su.addBranchGraph(createSceneGraph()); //Objekt hinzufügen
	}
	
	private BranchGroup createSceneGraph() {

		BranchGroup root = new BranchGroup(); //BranchGroup erzeugen um Objekte hinzufügen zu können
		root.addChild(new ColorCube(0.4)); //ColorCube mit Kantenlänge in Metern erzeugen und hinzufügen
		root.compile(); //SceneGraph kompilieren, damit er anzeigbar wirdUniverse.java
		
		return root;
	}

	public void destroy(){
		su.cleanup();
	}
	
	
}
```

Wenn das bei Dir nicht funktioniert, dürfte es an den Eclipse-Einstellungen liegen.


----------



## HaukederAnfänger (24. Jul 2007)

Hab gerade den Versuch mit der Html Datei gestartet und das Browserfenster gibt nur ein leeres Feld und den Fehlerhinweis "Java Applet notinited" und "Fehler beim Laden des Java Applets" aus...ich bin ich echt verzweifelt...


----------



## HaukederAnfänger (24. Jul 2007)

Habe gerade nochmal die Datein durchsucht...Java3d sind die 3 Coredateien und die 3 externen Jars enthalten (vecmath,..).
In JDK habe ich die bin eingebunden, aber entdecke gerade im Unterordner von JDK 1.5 noch einen JRE Ordner, der auch noch einen bin Ordner enthält..den auch einbinden in PATH?!

EDIT: Immer noch "noninited!"


----------



## HaukederAnfänger (24. Jul 2007)

@Quarxli

Habe gerade dein Programm unter der Eingabeaufforrderung gestartet und 15 Fehler....er kann die ganzen Dateien nicht importieren!!!!

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhhhhhhhhhhhhh!!!!!!!!!!


----------



## HaukederAnfänger (24. Jul 2007)

Irgendwie klappts nun...einfach die Jars und CO ins Package geladen und dann gings...kein plan..


----------



## merlin2 (24. Jul 2007)

Hauptsache, es funktioniert! :wink:


----------



## Quaxli (25. Jul 2007)

Kaum macht man 2 Tage lang rum...


----------



## HaukederAnfänger (25. Jul 2007)

Danke trotzdem für eure Mühen und Antworten 

Vllt kann mir aber jemand noch ein paar Tipps geben mit was ich mich beschäftigen muss, wenn es um folgende Themen geht:

-Nullpunktbestimmung
-Winkelvergleiche
-Graphische Darstellung

Es werden Daten über ein optisches Trackingsystem aufgenommen. Einmal prä- und einmal postoperativ. Diese sollen dann verglichen werden.
Bei der Nullpunktbestimmung, kann ich mir vorstellen, dass er automatisch zB die visualisierten Daten auf p(0,0,0) legt, oder?
Ansonsten kann ich doch einfach den ersten Datenpunktaufnehmen, die Koordinaten im Inertialsystem bestimmen lassen und dem Punkt - falls nicht (0,0,0) - diese Werte zuweisen lassen.

Wie jedoch funktioniert das mit dem Winkelvergleich? Ich habe nichts dazu in meinen Tutorials gefunden und habe auch keine gute Literatur...(Empfehlung in Bezg vllt Ingenieurswesen?)

Und gibt es unterschiedliche Darstellungsmethoden einer Bewegung? Es soll bei mir die Translation und Rotation der Wirbelsäule dargestellt werden...

Danke fürs Lesen und vllt auch Antworten   
Hauke


----------

