Zum Inhalt springen

BlueJ - Cannot find symbol


Empfohlene Beiträge

Geschrieben

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

Geschrieben

Der Fehler liegt am fehlenden Verständnis dessen, was der Code macht.

Die Fehlermeldung besagt, dass die Klasse nicht gefunden wird/ existiert.

Geschrieben

Aber am Anfang wird doch angegeben welches Objekt was darstellen soll.

Wie kann ich das Problem denn im Code ändern / verbessern?

Geschrieben

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?

Geschrieben

Der Befehl wird ausschließlich in der Datei benutzt.

Und was genau soll mein Classpath sein? Ich komme leider nicht weiter.

Geschrieben

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...

Geschrieben

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

Geschrieben

"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

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...