• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

Code zusammenfassen

C

ComputerHannes

Neues Mitglied
Kann man diesen Codeteil irgendwie kürzer fassen?
Also wenn es beispielsweise bis Feld 50 weitergehen würde.
Copy und Paste der If-Anweisung geht natürlich immer, aber es muss doch einen eleganteren Weg geben.

if(FeldSpieler==1) {
Feld1.setBackground(Color.blue);
}
if(FeldSpieler==2) {
Feld2.setBackground(Color.blue);
}
if(FeldSpieler==3) {
Feld3.setBackground(Color.blue);
}
if(FeldSpieler==4) {
Feld4.setBackground(Color.blue);
}
if(FeldSpieler==5) {
Feld5.setBackground(Color.blue);
}
......
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Speicher die Felder in einem Array und nicht einzeln. Dann kannst du mit dem Index direkt darauf zugreifen.

Java:
felder[i].setBackground(Color.blue);
 
mihe7

mihe7

Top Contributor
Feld ist passenderweise eine mögliche Übersetzung für Array. Wenn Du also 50 Felder hast, kannst Du ein Array verwenden:
Java:
JComponent felder[] = new JComponent[50]; // statt JComponent ggf. den passenden Typ einsetzen
Damit hast Du einen index-basierten Zugriff auf die Felder: felder[0] kennzeichnet das erste Feld. In der Regel organisiert man es so, dass "FeldSpieler" den Index des Feldes angibt, auf dem der Spieler "steht" (oder was auch immer). Damit braucht man lediglich
[ode=Java]
felder[feldSpieler].setBackground(Color.blue);
[/code]
schreiben.

Tatsächlich wirst Du die anderen Felder aber zurücksetzen wollen. Das erreicht man mit einer Schleife, z. B.:
Java:
for (JComponent feld : felder) {
    feld.setBackground(Color.white);
}

Übrigens: es gibt in Java Benennungskonventionen. Namen von Variablen und Parametern schreibt man in lowerCamelCase, Typbezeichner (z. B. Klassennamen) in UpperCamelCase.
 
N

Neumi5694

Bekanntes Mitglied
Das bereits genannte Array oder eine Liste ist in diesem Fall die naheliegendste Lösung (pass mit den Indizes auf, Arrays und Listen starten bei 0. Korrigier also entweder jeweils den Index oder setz die Größe auf n+1 und rufe den Index 0 nie auf).
Falls du andere Datentypen als positiven Integer verwenden willst, gibt's genau dafür Maps (z.B. HashMap<String, Component> oder EnumMap<PlayerEnum, Component>).
Diese wird - wie das Array - einmalig initialisiert und ermöglicht dann recht angenehme Zugriffsmethoden.
 
O

Oneixee5

Bekanntes Mitglied
Kann man diesen Codeteil irgendwie kürzer fassen?
Also wenn es beispielsweise bis Feld 50 weitergehen würde.
Copy und Paste der If-Anweisung geht natürlich immer, aber es muss doch einen eleganteren Weg geben.

if(FeldSpieler==1) {
Feld1.setBackground(Color.blue);
}
if(FeldSpieler==2) {
Feld2.setBackground(Color.blue);
}
if(FeldSpieler==3) {
Feld3.setBackground(Color.blue);
}
if(FeldSpieler==4) {
Feld4.setBackground(Color.blue);
}
if(FeldSpieler==5) {
Feld5.setBackground(Color.blue);
}
......
 
O

Oneixee5

Bekanntes Mitglied
Du solltest nicht so linear sondern mehr Objektorientiert arbeiten. Vergiss alles in irgend welche Arrays zu packen und getrennt voneinander zu verwalten, Objekte wären z.B.: Spielbrett kennt seine Felder und diese kennen den Spieler usw. Um das mal zu verdeutlichen folgendes Beispiel.
Java:
    public static class Player {

        private final int id;
        private String name;
        private Color color;

        public Player(int id, String name, Color color) {
            this.id = id;
            this.name = name;
            this.color = color;
        }

        public int getId() {
            return id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Color getColor() {
            return color;
        }

        public void setColor(Color color) {
            this.color = color;
        }

    }
   
    private static void setBackground(Field field, Player player) {
        field.setBackground(player.getColor());
    }

    public static void main(String[] ioPaths) throws Exception {
        Player playerOne = new Player(1, "Spieler 1", Color.BLUE);
        Field fieldOne = new ...
        setBackground(fieldOne, playerOne);
       // oder besser
       fieldOne.setBackground(playerOne); // die Methode setBackground würde dann - this.setBackground(player.getColor()); - This wäre dann ein Field
    }
Das ist natürlich sehr simpel da ich dein Projekt nicht kenne soll aber verdeutlichen was ich meine.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
T Programmablaufsplaninterpretation in Code umformen Java Basics - Anfänger-Themen 1
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
M ISBN-Code Java Basics - Anfänger-Themen 26
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
N Kann man den Code vereinfachen? Java Basics - Anfänger-Themen 25
marcooooo Code erklären Java Basics - Anfänger-Themen 28
marcooooo Code erklären Java Basics - Anfänger-Themen 4
S Advent of Code Day4 Java Basics - Anfänger-Themen 4
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
Gaudimagspam Caesars Code entziffern in Java Java Basics - Anfänger-Themen 8
Lukasbsc Wie kann ich meinen Code optimieren? Java Basics - Anfänger-Themen 4
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
T Main startet nicht bei vorgegebenen Code Java Basics - Anfänger-Themen 41
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
parrot Code entferneJedeZweiteZiffer Java Basics - Anfänger-Themen 6
G Code kürzen Java Basics - Anfänger-Themen 5
Bluedaishi Source Code Signieren Java Basics - Anfänger-Themen 22
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
L Best Practice Code refactern Java Basics - Anfänger-Themen 30
G code kürzen Java Basics - Anfänger-Themen 16
A Code umschreiben Java Basics - Anfänger-Themen 6
Torsten.E JavaFX mit Visual Studio Code verwenden Java Basics - Anfänger-Themen 1
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
X Reverse algorithm engineering (Java code) Java Basics - Anfänger-Themen 6
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
R Was muss ich an meinem Code ändern? Java Basics - Anfänger-Themen 2
S Bewertet meinen Code - Part 1 Java Basics - Anfänger-Themen 8
M Java Code Verständnis Java Basics - Anfänger-Themen 4
M Java Code Verständnis Java Basics - Anfänger-Themen 2
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Hierarchi im code darstellen Java Basics - Anfänger-Themen 11
S Struktogramm zu Code Java Basics - Anfänger-Themen 4
F Code kürzen Java Basics - Anfänger-Themen 9
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
S Hilfe bei meinem Code [Schleife]? Java Basics - Anfänger-Themen 5
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
J Array eintrag mit möglichst wenig code lösen Java Basics - Anfänger-Themen 16
N SelectionSort ; Code erläutern Java Basics - Anfänger-Themen 13
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
B Prüfen, ob Country Code in Europa ist? Java Basics - Anfänger-Themen 24
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
O I/O Code Gerüst vorgegeben Java Basics - Anfänger-Themen 30
R Dieser Code sagt mir nichts... Java Basics - Anfänger-Themen 4
C Klassendiagramm aus Java-Code entwickeln Java Basics - Anfänger-Themen 3
A Eine Krone in der Textausgabe - Mein Code Java Basics - Anfänger-Themen 11
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
J Variablen Hilfe bei diesem Code Java Basics - Anfänger-Themen 6
H projekt 1 code schöner schreiben. Java Basics - Anfänger-Themen 25
R Code Verkürzen? Java Basics - Anfänger-Themen 19
B Interpreter-Fehler Code verstehen und Compilerfehler Java Basics - Anfänger-Themen 2
H Interface Hilfe mit Code Java Basics - Anfänger-Themen 4
C Verbesserungsvorschlag für effizienteren Code - (Project Euler10) Java Basics - Anfänger-Themen 26
D Erste Schritte Code verstehen - HashSet Java Basics - Anfänger-Themen 8
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
H Code erläutern Java Basics - Anfänger-Themen 35
T Java Code erklären Java Basics - Anfänger-Themen 7
B Code Zeile unklar Java Basics - Anfänger-Themen 9
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
E ASCII-Code in Java ausgeben Java Basics - Anfänger-Themen 6
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
L Wie kann man fehlerfrei im Java Code auf die fxml Datei zugreifen? Java Basics - Anfänger-Themen 26
H Frage um den Code bildlich darzustellen Java Basics - Anfänger-Themen 2
U Methoden Code sinnvoll in Methoden einteilen Java Basics - Anfänger-Themen 2
R Problem mit Code Java Basics - Anfänger-Themen 3
D Erste Schritte Kontrolle Code Java Basics - Anfänger-Themen 17
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
H 3 oder 4 Fehler im Code Java Basics - Anfänger-Themen 0
H 3 oder 4 Fehler im Code Java Basics - Anfänger-Themen 19
N Wie lerne ich neuen Code zu benutzen? Java Basics - Anfänger-Themen 6
S Unklarer Code (was passiert hier?) Java Basics - Anfänger-Themen 1
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
WerIstDerBoogieman? Code review bzw. "Coaching" Java Basics - Anfänger-Themen 34
J Best Practice [Code Verbesserung] TXT einlesen und in Arrayliste speichern Java Basics - Anfänger-Themen 5
S Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 2
D Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 23
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
G Zinsberechnung - Fehler im Code Java Basics - Anfänger-Themen 35
U Methoden Code Quality und Stil Java Basics - Anfänger-Themen 5
J Klammer im Code Java Basics - Anfänger-Themen 11
J Code Verständnis Java Basics - Anfänger-Themen 9
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte von UML Diagramm zum Code Java Basics - Anfänger-Themen 29
N Problem bei meinem Code Java Basics - Anfänger-Themen 10
L Code optimieren Java Basics - Anfänger-Themen 14
N Hilfe, Code erklären Java Basics - Anfänger-Themen 7
M Bessere bzw. kürzere Variante für Code? Java Basics - Anfänger-Themen 2
Thallius Was ist an dem Code verkehrt? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben