Mehrere Objekte in ein Objekt zusammenfassen

df16

Mitglied
Hi,

ich habe ein Problem.
Vorweg ich bin noch ein relativer Anfänger und benötige jetzt Hilfe für ein Schulprojekt. Ich habe viele Rechtecke gleicher Größe an unterschiedlichen Positionen und von diesen möchte ich jetzt für jedes Rechteck einzeln die Farbe ändern können. Ich dachte, dass es vlt. reicht eine Methode für mehrere Objekte zu schreiben, weil der Programmcode sonst im Bodenlosen endet.

Danke schonmal.
 
Entstammen diese Rechtecke einer eigenen Klasse von dir?
Dann könntest du eine Methode in dieser Klasse ergänzen mit einem Parameter vom Typ Color und dann damit die Farbe neu setzen. Eine sogenannte Setter-Methode.
Vielleicht hab ich dich auch falsch verstanden.
 
So in etwa wie im Bild, dann müsste ich aber für jedes Rechteck einzeln eine Methode schreiben, oder habe ich da was falsch verstanden? Könnte ich das irgendwie umgehen, indem ich in die Methode dann erst eingebe welches Objekt ich den verändern will?
 

Anhänge

  • Javaforum bild 2.JPG
    Javaforum bild 2.JPG
    14,1 KB · Aufrufe: 88
Hab bis jetzt leider noch nicht viel, nur den Konstruktor bei dem die Rechtecke erzeugt werden und der ist schon recht unübersichtlich.🙁
 

Anhänge

  • Javaforum bild 3.JPG
    Javaforum bild 3.JPG
    134,7 KB · Aufrufe: 78
Dann schreibst du in dieser Klasse eine Methode mit der du die Farbe ändern kannst.

Code:
r1.farbeSetzen(Color.BLACK);

Damit würdest du dann die Farbe von Rechteck 1 auf schwarz ändern.

Die ganzen Initialisierungen sehen für mich aus als könnte man das mit einer Schleife sehr viel leichter machen.
 
Natürlich könnte ich auf diese Weise die Farbe ändern, allerdings müsste ich doch dann diese Methode auch für r2 etc. schreiben und das versuche ich zu umgehen.
 
Was die For-Schleife betrifft um das Ganze abzukürzen, habe ich jetzt ja eigentlich wieder das Problem, dass jetzt hier die For-Schleife sich immer nur auf ein Objekt bezieht und nicht beim wiederholen auf das Nachfolgende und damit sinnlos ist. Wie könnte ich realisieren, dass sie sich dann auf andere Objekte bezieht
 

Anhänge

  • Javaforum bild 5.JPG
    Javaforum bild 5.JPG
    31,1 KB · Aufrufe: 54
Zuerstmal: durch die Schleife die du oben gezeigt hast geht er gar nich durch:

for (int i=0; i>41; i++) {

}

Da ist i ja schon zu beginn nicht > 41 !! Du meintest wahrscheinlich < 41 !

Ausserdem überschreibst du dir immer wieder die Objektreferenz obj1 mit dem nächsten Rechteck.
D.h. am Ende hast du eines nämlich das letzte das du ansprechen kannst. Du solltest dir die Recktecke in eine Array von Rechtecken merken. Und über dieses kannst du dann später iterieren um für alle Rechtecke die Farbe zu ändern. Und die Methode zum ändern der Farbe brauchst du natürlich nur ein einziges Mal in der Klasse Rechteck !
 
ich bezweifel sehr stark das du all die Rechtecke als einzelne Variablen anlegen sollst.
Stattdessen sollst du vermutlich alle Rechtecke in einem Array oder einer Liste speichern.
 
Also, habe des jetzt nochmal neu umgesetzt und bin jetzt so weit gekommen, dass zwar alles erzeugt wird, ich die Farbe aber nicht ändern kann, weil einzelne Rechtecke im Array nicht anwählbar sind zum Farbwechsel. Die Methode farbeSetzen() kommt aus einer anderen Klasse und funktioniert.Javaforum bild 6.JPG Javaforum bild 6.JPG Javaforum bild 6.JPG
 
Du erzeugst zwar jetzt in den geschachtelten Schleifen die Felder aber du musst dir auch die Referenz in deinem Array felder abspeicher:

Code:
felder[i][n] = new Feld(x,y);
 

Neue Themen


Zurück
Oben