Java Source erkennt Methode nicht

xloouch

Erfahrenes Mitglied
Hallo zusammen

Ich hab ein kleines Problem
Ich habe eine Loader-Klasse. Diese importiere ich wie folgt

Java:
import org.j3d.renderer.java3d.loaders.*;

Nun will ich einen bestimmten Loader machen:

Java:
 private STLLoader RoboArm;

Nun initialisiere ich diese Variable wie folg. Erhalte jedoch in Netbeans diese nachfolgende Fehlermeldung:
Java:
private void loadPoses() {
        RoboArm=new STLLoader();
        try {
            RoboArm.load("c:/BG_Robo_C_STL.stl");
        } catch (Exception fnfe){
            fnfe.printStackTrace();
        }
    }

Wenn ich über "RoboArm=new STLLoader();" fahre. Kommt diese Meldung:

STLLoader = > "STLLoader" is not a known variable in current context <

Wenn ich dann anschliessend über den zweiten RoboArm gehe, folgt die nächste Meldung:

RoboArm = null

Wenn ich nun den ganzen Code kompiliere gibt er aus :
FileNotFoundException
at roboterarmv2.robotArm.loadPoses(robotArm.java:62)


Kann mir jemand sagen, wieso diese Meldungen kommen?

Danke für eure schnelle Hilfe
 
Hallo,

zu der FileNotFoundException kann ich dir schon mal sagen, dass er die Datei nicht findet die du angibst.

Es wäre vielleicht hilfreich wenn du etwas mehr SourceCode posten würdest. Im moment kann ich nämlich was den STLLoader angeht keinen Fehler erkennen.


MFG

zEriX
 
Das mit der FileNotFound Exception ist nicht möglich.. Ich habe die Datei auf C:\ kopiert. D.H. sie ist vorhanden..

nun zum source. Ich kopiere die gesamte Klasse hier hin:

Java:
/*
 * robotArm.java
 *
 * Created on 29. Mai 2007, 12:54
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package roboterarmv2;


import org.j3d.renderer.java3d.loaders.*;
import java.text.DecimalFormat;
import java.util.*;
import java.io.*;

import javax.media.j3d.*;
import javax.vecmath.*;
/**
 *
 * @author gnadirap
 */
public class robotArm {
    private final static String poses[] =
         {"stand", "walk1", "walk2", "rev1", "rev2",
          "rotClock", "rotCC", "mleft", "mright",
          "punch1", "punch2"};
    private final static int STAND_NUM = 0;   // index of "stand" Pose


    private TransformGroup objectTG;          // TG which the loaded object hangs off
    private Transform3D t3d, toMove, toRot;   // for manipulating objectTG's transform

    private BitSet visIms;              // used for switching
    private int currPoseNo, maxPoses;   // Pose number info

    private boolean isActive;   // is the sprite active?
    private STLLoader RoboArm;
    private DecimalFormat df; 
    /** Creates a new instance of robotArm */
    public robotArm() {
        df = new DecimalFormat("0.###");  // 3 dp

        loadPoses();

        // create a new transform group for the object
        objectTG = new TransformGroup();
        objectTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        objectTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

        t3d = new Transform3D();
        toMove = new Transform3D();
        toRot = new Transform3D();
        isActive = true;
    }
    private void loadPoses() {
        RoboArm=new STLLoader();
        try {
            RoboArm.load("c:/BG_Robo_C_STL.stl");
        } catch (Exception fnfe){
            fnfe.printStackTrace();
        }
    }
}

Weiss ja selbst auch nicht. aber beim Kompilieren selbst erhalte ich ja auch keine Fehler.. Blos die File Not Found.
 
Du meinst wohl eher bei der Laufzeit und nicht beim kompilieren, oder? Beim compilieren kann keine FileNotFoundException auftreten. Ist das der ganze Stacktrace der kommt?
 
genau.. sorry, dass ichs falsch geschrieben habe. Beim kompilieren selbst erhalte ich keinen Fehler. Nur bei der Laufzeit kommt die FileNotFoundException. Aber wieso ich die anderen Fehler erhalte. weiss ich nicht..

Vorallem diese Fehlermeldung : STLLoader = > "STLLoader" is not a known variable in current context <
 
Also ich kann im Quellcode auch keinen Fehler finden. Ein bisschen googeln liefert auch nur, dass der Fehler typisch für Netbeans ist, aber keiner hat ne Lösung :)

Das einzige, was ich an obigem Code anders machen würde (vor allem, weil ich es so wie es da steht noch nicht ausprobiert habe), ist die Angabe des Dateinamens.
Also statt RoboArm.load("c:/BG_Robo_C_STL.stl"); würde ich RoboArm.load("c:\\BG_Robo_C_STL.stl"); benutzen. Aber ob's daran liegen kann ... keine Ahnung.
 
Hi Kulabac

Habe nun deine Änderung eingebracht. Bekomme immernoch diese Message:

Java:
java.io.FileNotFoundException
        at org.j3d.renderer.java3d.loaders.STLLoader.load(STLLoader.java:82)
        at roboterarmv2.robotArm.loadPoses(robotArm.java:60)
        at roboterarmv2.robotArm.<init>(robotArm.java:45)
        at roboterarmv2.Animation.addTourist(Animation.java:106)
        at roboterarmv2.Animation.createSceneGraph(Animation.java:68)
        at roboterarmv2.Animation.init(Animation.java:56)
        at roboterarmv2.roboGui.initComponents(roboGui.java:275)
        at roboterarmv2.roboGui.<init>(roboGui.java:39)
        at roboterarmv2.Main.main(Main.java:26)
 
Also ich sage immer noch, dass er die Datei nicht findet.
schreib einfach mal, bevor die Datei geöffnet werden soll.
Code:
System.out.println(new File("c:/BG_Robo_C_STL.stl").exists)

MFG

zEriX
 
Bin ich jetzt blöd geworden, oder muss ich noch ne zusätzliche Klasse importieren

Java:
C:\Dokumente und Einstellungen\gnadirap\Eigene Dateien\Studium\Netbeans\RoboterArmV2\src\roboterarmv2\robotArm.java:59: cannot find symbol
symbol  : variable exists
location: class java.io.File
        System.out.println(new File("c:/BG_Robo_C_STL.stl").exists );
1 error
 
Ähm ... exists ist eine Methode und da setzt man Klammern *hust*

Code:
System.out.println(new File("c:/BG_Robo_C_STL.stl").exists() );
 
Zurück