butzilol Geschrieben 1. Februar 2010 Geschrieben 1. Februar 2010 Hey Leute hab für die Schule ne Ampel machen müssen. Zeichnen war kein Problem , farbensetzen und diese ein und ausschalten auch nicht , nur soll ich jetz dieses aus/ein-schalten der einzelnen farben in eine methode fassen (weiterschalten) das eben beim 1sten mal rot aufleuchtet--->dann rot+gelb---->grün----->gelb---->rot und wieder von vorne.... habs mit "if" versucht aber iwie klappt des net hab gehört man solls am besten mit "case" machen können aber des check ich net^^ mein "if" versuch: public void weiterschalten() { if (roteLampe.farbeSetzen="rot") { gelbeLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("gelb"); if (gelbeLampe.farbeSetzen="gelb") roteLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("gruen"); if (grueneLampe.farbeSetzen="gruen") roteLampe.farbeSetzen("rot"); gelbeLampe.farbeSetzen("grau"); } klappt iwie nulll.... wär cool wenn mir jmd helfen könnte MFG BUTZI Zitieren
flashpixx Geschrieben 1. Februar 2010 Geschrieben 1. Februar 2010 Wie wäre es, wenn Du Code-Tags verwendest und Dein Problem beschreibst !! Funktioniert nicht, ist keine ausreichende Fehlerbeschreibung Außerdem verwendest Du wohl einen Methodennamen, einmal als Property und einmal als Methode, das wird wohl nicht funktionieren, aber wie gesagt, Du musst das Problem vollständig beschreiben und ggf. Deinen Code posten Zitieren
lupo49 Geschrieben 1. Februar 2010 Geschrieben 1. Februar 2010 Was auch nicht funktioniert, ist bei einer IF-Anweisung die beiden Operanden mit einem Zuweisungsoperator vergleichen zu wollen. Zitieren
butzilol Geschrieben 1. Februar 2010 Autor Geschrieben 1. Februar 2010 (bearbeitet) import eps.einfacheGrafik.Bild; import eps.einfacheGrafik.Ellipse; import eps.einfacheGrafik.Rechteck; /** * Die Klasse AmpelgrafikFussgaenger implementiert die Darstellung * einer Fussgaengerampel. * */ public class AutoampelII { /** * Das Attribut gehaeuse haelt das Rechteck, dass das * Gehaeuse der Ampel darstellt. */ private Rechteck gehaeuse; /** * Das Attribut roteLampe haelt den Kreis, der den * Hintergrund der roten Lampe bildet. */ private Ellipse roteLampe; /** * Das Attribut grueneLampe haelt den Kreis, der den * Hintergrund der gruenen Lampe bildet. */ private Ellipse grueneLampe; /** * Das Attribut grueneLampe haelt den Kreis, der den * Hintergrund der gelben Lampe bildet. */ private Ellipse gelbeLampe; /** * Konstruktor fuer Objekte der Klasse AmpelgrafikFussgaenger * Es wird eine Ampel gezeichnet, die ausgeschaltet ist. */ public AutoampelII(int x, int y) { ampelZeichnen(x,y); anzeigen(); } /** * Die Methode goAnzeigen schaltet die Ampel auf "gruen". * Es wird der Vorzustand nicht ueberprueft, dass muss der * Nutzer machen. */ public void goAnzeigen() { grueneLampe.farbeSetzen("gruen"); roteLampe.farbeSetzen("grau"); gelbeLampe.farbeSetzen("grau"); } /** * Die Methode stoppAnzeigen schaltet die Ampel auf "rot". * Es wird der Vorzustand nicht ueberprueft, dass muss der * Nutzer machen. */ public void stoppAnzeigen() { roteLampe.farbeSetzen("rot"); gelbeLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("grau"); } /** * Die Methode stoppAnzeigen schaltet die Ampel auf "rot". * Es wird der Vorzustand nicht ueberprueft, dass muss der * Nutzer machen. */ public void achtungAnzeigen() { gelbeLampe.farbeSetzen("gelb"); grueneLampe.farbeSetzen("grau"); roteLampe.farbeSetzen("grau"); } /** * Die Methode anzeigen macht die Grafikobjekte, die die Ampel * darstellen, sichtbar. */ public void anzeigen() { gehaeuse.anzeigen(); roteLampe.anzeigen(); grueneLampe.anzeigen(); gelbeLampe.anzeigen(); } /** * Die Methode verstecken macht die Grafikobjekte, die die Ampel * darstellen, unsichtbar. */ public void verstecken() { gehaeuse.verstecken(); roteLampe.verstecken(); grueneLampe.verstecken(); gelbeLampe.verstecken(); } /** * Die Methode weiterschalten zeigt die nächste Farbe an */ public void weiterschalten() { if (roteLampe.farbeSetzen="rot") { gelbeLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("gelb"); if (gelbeLampe.farbeSetzen="gelb") roteLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("gruen"); if (grueneLampe.farbeSetzen="gruen") roteLampe.farbeSetzen("rot"); gelbeLampe.farbeSetzen("grau"); } /** * Die Methode ampelZeichnen zeichnet die Komponenten der * Ampel. */ private void ampelZeichnen(int xPosition, int yPosition) { /* Gehaeuse der Ampel zeichnen */ gehaeuse = new Rechteck(); gehaeuse.groesseSetzen(100, 300); gehaeuse.positionSetzen(xPosition, yPosition); gehaeuse.farbeSetzen("schwarz"); /* rote Lampe zeichnen (Dient als Hintergrund fuer die Bilder) */ roteLampe = new Ellipse(); roteLampe.groesseSetzen(80, 80); roteLampe.positionSetzen(xPosition + 10, yPosition +10); roteLampe.farbeSetzen("grau"); /* gruene Lampe zeichnen (Dient als Hintergrund fuer die Bilder) */ gelbeLampe = new Ellipse(); gelbeLampe.groesseSetzen(80, 80); gelbeLampe.positionSetzen(xPosition + 10, yPosition + 106); gelbeLampe.farbeSetzen("grau"); /* gruene Lampe zeichnen (Dient als Hintergrund fuer die Bilder) */ grueneLampe = new Ellipse(); grueneLampe.groesseSetzen(80, 80); grueneLampe.positionSetzen(xPosition + 10, yPosition + 200); grueneLampe.farbeSetzen("grau"); } /** * Alle Lichter ausschalten */ public void ausschalten() { } } des is des gesamte programm... edit: arbeite mit BlueJ falls des nen unterschied macht Bearbeitet 1. Februar 2010 von flashpixx Edit: Codetags eingefügt Zitieren
flashpixx Geschrieben 1. Februar 2010 Geschrieben 1. Februar 2010 Du hast Dein Problem immer noch nicht genannt ! Nicht jeder hat BlueJ, nicht jeder kennt Deine Klassen. Wie schon gesagt, Du verwechselst Properties mit Methoden und Deine Vergleichsoperatoren sind falsch. Zitieren
lupo49 Geschrieben 2. Februar 2010 Geschrieben 2. Februar 2010 public void weiterschalten() { if (roteLampe.farbeSetzen="rot") { gelbeLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("gelb"); if (gelbeLampe.farbeSetzen="gelb") roteLampe.farbeSetzen("grau"); grueneLampe.farbeSetzen("gruen"); if (grueneLampe.farbeSetzen="gruen") roteLampe.farbeSetzen("rot"); gelbeLampe.farbeSetzen("grau"); Das funktioniert immer noch nicht. Bitte meinen ersten Post lesen und die Information anwenden. Nur weil jetzt hier der Quellcode steht, heißt das nicht, das dir einer die Lösung präsentiert. Selbst ist der Mann. Zitieren
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.