luxxu Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Guten Tag, ich habe mir einen Skript raus gesucht, um meinen eigenen etwas zu verbessern. Allerdings habe ich nun ein Problem mit den Objekten. Code: import sum.kern.*; /** * @author Philip WOLtersdorf * @version 1.0 */ public class HP { // Objekte Bildschirm derBildschirm; Tastatur dieTastatur; Maus dieMaus; Stift hatStift; Knopf Knopf; Knopf Knopf2; Figur dummy; Lokomotive dieLok; PersonenWaggon derPer; OelWaggon derOel; HolzWaggon derHol; // Konstruktor public HP() { derBildschirm = new Bildschirm(333,333); dieTastatur = new Tastatur(); dieMaus = new Maus(); hatStift = new Stift(); Knopf = new Knopf(derBildschirm.breite()/3-25 ,derBildschirm.hoehe()-50,25,50,dieMaus,'E'); Knopf2 = new Knopf(derBildschirm.breite()/3*2-25,derBildschirm.hoehe()-50,25,50,dieMaus,'S'); dieLok = new Lokomotive(derBildschirm.breite()/4,derBildschirm.hoehe()/2,dieMaus); derPer = new PersonenWaggon(derBildschirm.breite()/3-50,derBildschirm.hoehe()/8,dieMaus); derOel = new OelWaggon(derBildschirm.breite()/3*2-50,derBildschirm.hoehe()/8,dieMaus); derHol = new HolzWaggon(derBildschirm.breite()/3*3-50,derBildschirm.hoehe()/8,dieMaus); dieLok.zeichneDich(); dummy = dieLok; } // Dienste public void fuehreAus() { // Aktionsteil hatStift.bewegeBis(0,derBildschirm.hoehe()/4); hatStift.runter(); hatStift.bewegeBis(derBildschirm.breite(),derBildschirm.hoehe()/4); hatStift.hoch(); hatStift.bewegeBis(0,derBildschirm.hoehe()/4+10); hatStift.runter(); hatStift.bewegeBis(derBildschirm.breite(),derBildschirm.hoehe()/4+10); hatStift.hoch(); hatStift.bewegeBis(0,(derBildschirm.hoehe()/4)*3); hatStift.runter(); hatStift.bewegeBis(derBildschirm.breite(),(derBildschirm.hoehe()/4)*3); hatStift.hoch(); hatStift.bewegeBis(0,((derBildschirm.hoehe()/4)*3)-10); hatStift.runter(); hatStift.bewegeBis(derBildschirm.breite(),((derBildschirm.hoehe()/4)*3)-10); hatStift.hoch(); do { if(dieMaus.doppelKlick()) { if(derPer.getroffen()) { dummy = dieLok; while (dummy.nenneNachfolger() != null) { dummy = dummy.nenneNachfolger(); } dummy.kuppelAn(new PersonenWaggon(0,0,dieMaus)); do { dieLok.bewegeDich(-1); }while (dummy.nennehPosition() > derBildschirm.breite()/2); } if(derOel.getroffen()) { dummy = dieLok; while (dummy.nenneNachfolger() != null) { dummy = dummy.nenneNachfolger(); } dummy.kuppelAn(new OelWaggon(0,0,dieMaus)); do { dieLok.bewegeDich(-1); }while (dummy.nennehPosition() > derBildschirm.breite()/2); } if(derHol.getroffen()) { dummy = dieLok; while (dummy.nenneNachfolger() != null) { dummy = dummy.nenneNachfolger(); } dummy.kuppelAn(new HolzWaggon(0,0,dieMaus)); do { dieLok.bewegeDich(-1); }while (dummy.nennehPosition() > derBildschirm.breite()/2); } if(Knopf.getroffen()) { Knopf.aktiviere(); dummy = dieLok; if(dieLok.nenneNachfolger() != null) { while (dummy.nenneNachfolger().nenneNachfolger() != null) { dummy = dummy.nenneNachfolger(); } dummy.entferneNachfolger(); do { dummy = dieLok; while (dummy.nenneNachfolger() != null) { dummy = dummy.nenneNachfolger(); } dieLok.bewegeDich(+1); }while (dummy.nennehPosition() < derBildschirm.breite()/2); } Knopf.deaktiviere(); } if(Knopf2.getroffen()) { Knopf2.aktiviere(); do { dieLok.bewegeDich(+5); }while (dieLok.nennehPosition() < derBildschirm.breite()/2); do { dieLok.bewegeDich(-1); }while (dummy.nennehPosition()+dummy.nenneLaenge()+1 > 0); Knopf2.deaktiviere(); } } }while (dummy.nennehPosition()+dummy.nenneLaenge()+1 > 0); // Aufraeumen dieTastatur.gibFrei(); derBildschirm.gibFrei(); dieMaus.gibFrei(); hatStift.gibFrei(); Knopf.gibFrei(); Knopf2.gibFrei(); derPer.gibFrei(); derOel.gibFrei(); derHol.gibFrei(); dieLok.gibFrei(); } } Folgender Fehler kommt: Cannot find symbol - class Knopf Wo liegt der Fehler? MfG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Der Fehler liegt am fehlenden Verständnis dessen, was der Code macht. Die Fehlermeldung besagt, dass die Klasse nicht gefunden wird/ existiert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
luxxu Geschrieben 19. März 2012 Autor Teilen Geschrieben 19. März 2012 Aber am Anfang wird doch angegeben welches Objekt was darstellen soll. Wie kann ich das Problem denn im Code ändern / verbessern? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Dass kann ja schon sein. Dein Compiler glaubt dir aber nicht. Der findet die Klasse nicht im Classpath. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
luxxu Geschrieben 19. März 2012 Autor Teilen Geschrieben 19. März 2012 Das sagt mir jetzt leider nicht sehr viel, zur Verbesserung. Ich weiss nun das er die Klasse nicht erkennt. Aber wie löse ich das Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Pack die Klasse in dein Classpath. Mache die Klasse public, wenn sie in einem anderen Paket liegt. Erzeuge die Klasse. Such dir was aus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
luxxu Geschrieben 19. März 2012 Autor Teilen Geschrieben 19. März 2012 Der Befehl wird ausschließlich in der Datei benutzt. Und was genau soll mein Classpath sein? Ich komme leider nicht weiter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Und was genau soll mein Classpath sein? Klassenpfad bitte fange erst einmal damit an, dass Du verstehst wie Java Klassen / Pakete etc strukturiert und instantiiert, ebenso was Klassen und was Objekte sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
luxxu Geschrieben 19. März 2012 Autor Teilen Geschrieben 19. März 2012 Das Classpath der Klassenpfad ist ist mir schon klar, danke aber für das dumm halten. Wir haben nichts anderes mit den Klassen im Unterricht gemacht. Nur mit dem Stift zum beispiel. Stift hatStift; und dann erkennt er den Stift an. Und so müsste es doch mit dem Knopf doch auch gehen, eigentlich... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 und dann erkennt er den Stift an. Und so müsste es doch mit dem Knopf doch auch gehen, eigentlich... Den Quellcode den Du postest benutzt keine standardisierten Klassen / Pakete, somit ist das alles irgendwie individuell entwickelt. Und wenn Du weisst wofür der Classpath gedacht ist, was hätte es Dich daran gehindert nach zu schauen, ob die von Dir verwendeten Klassen vorhanden sind Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
luxxu Geschrieben 19. März 2012 Autor Teilen Geschrieben 19. März 2012 "Knopf" gibt es in der Klasse von BlueJ nicht. Ist also ein eigener Befehl. Wir hatten bisher nur die Varianten mit double, private, protected, wovon hier nichts zutreffend passen würde. Deshalb komme ich im moment nicht weiter MfG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Knopf ist wie HP eine Klasse, die nicht zum Umfang der mit Java ausgelieferten Klassen gehört. Inhaltlich gehört sie wohl in das gleiche Paket wie Bildschirm, Tastatur, Maus und Stift. Damit sind es wahrscheinlich Klassen die durch deinen Lehrer(?) bereitgestellt werden bzw. von der Person, die den Quellcode "bereitgestellt" hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
luxxu Geschrieben 19. März 2012 Autor Teilen Geschrieben 19. März 2012 Leider nein, sonst würde meine Frage ja nicht bestehen. Wir haben die Klasse "Figur" (Abstract) bekommen und das "Grundgerüst" vom HP. Sprich public void fuehreAus() etc. Den inhalt müssen wir mit einigen Tipps selbst erstellen. Genau deshalb komme ich nicht weiter. Die Wagen habe ich bereits alle fertig, das einzige was gerade noch am scheitern ist ist das HP. mfg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. März 2012 Teilen Geschrieben 19. März 2012 Suche die Datei, die die Klasse HolzWaggon enthält und erstelle analog die Klasse Knopf im gleichen Verzeichnis mit den Methoden, die du benötigst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.