Wie kann eine vorgegebene Farbe über einen String erkannt werden?

Drachenbauer

Drachenbauer

Aktives Mitglied
Ich habe in meinem Spiel diese Variablen:

Java:
    public String selected_color;
   
    private Color red = new Color(191, 0, 0);
    private Color orange = new Color(191, 95, 0);
    private Color yellow = new Color(191, 191, 0);
    private Color green = new Color(0, 191, 0);
    private Color cyan = new Color(0, 191, 191);
    private Color blue = new Color(0, 0, 191);
    private Color purple = new Color(119, 0, 191);
    private Color magenta = new Color(191, 0, 191);

Ich benutze einen String, dem ich im Spiel den namen verschiedener Farben zuweise, da ich diesen zunächst benutze, um Spiel-Grafiken zu laden, die die entsprechenden Bezeichnungen im Dateinamen enthalten.
So kann ich die Variable als platzhalter im Dateipfad-String einbauen und es läd immer die Detei mit der gewünschten Farbe im namen.

Aber jetzt möchte ich das auch benutzen, um über folgendes:
Java:
        g.setColor(new Color(191, 191, 0));
        g.fillRect(0, 0, WIDTH, HIGHT);
die Hintergrundfarbe des Spielfeldes auch mit zu wechseln.
Deshalb sind die Namen der vorgegebenen Farben-Instanzen genauso geschrieben, wie die Inhalte, die der String erhalten kann.

Gibt es irgendetwas, das ich in die Klammern von dem Kommando zum Farbe einstellen einsetzen kann, damit über den Inhalt von dem String der name von einer meiner vorgegebenen Farben erkannt werden kann?

Ich möchte mir nämlich gerne eine 8-fache if-else-Entscheidung dort ersparen.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Wenn du if/else biz switch vermeiden willst, musst du eine geeignetere Datenstruktur wählen. Möglich wäre zB eine Map oder ein Wrapper für Farben, der Name und Farbwert wrappt.
 
J

java_in_medical_sector

Mitglied
Eine Möglichkeit wäre die über eine Klasse oder Struktur wie mrBrown schreibt:

Java:
package test;

import java.awt.Color;
import java.util.ArrayList;

public class ColorClass
{
    public Color Color = new Color(0,0,0);
    public String ColorName = "";
   
    public void SetColorByHexValue(String value)
    {
        try
        {
            Color = Color.decode(value);
        }
        catch (Exception ex)
        {
           
        }
       
    }
}


public class Test
{
    public Test()
    {
        ArrayList<ColorClass> ColorClassArray = new ArrayList<ColorClass>();
        ColorClass test = new ColorClass();
        test.Color = Color.blue;
        test.ColorName = "blue";
        ColorClassArray.add(test);
       
       
        for (ColorClass cl : ColorClassArray)
        {
            if (cl.ColorName.toUpperCase().trim().equals("BLUE"))
            {
                //found;
                break;
            }
        }
    }
}
 
Drachenbauer

Drachenbauer

Aktives Mitglied
das ist ja noch mehr text als 8 if-else - stufen.

ich suche immer nach Möglichkeiten, die möglichst wenig Code-Struktur benötigen und habe auf eine Lösung gehofft, die kompakter ist, als das.

Ich habe auf etwas gehofft, das frei übersetzt soviel bedeuten würde, wie "nimm die Farbe, deren Variablen-Name dem inhalt von "selected_color" entspricht" und komplett in die Klammern der "g.setColor();" - Methode passt, und wofür ich keine extra klasse oder so schreiben muss.
 
Zuletzt bearbeitet:
Drachenbauer

Drachenbauer

Aktives Mitglied
Ich habe es jetzt mit einer HashMap hinbekommen.
 
Zuletzt bearbeitet:
Drachenbauer

Drachenbauer

Aktives Mitglied
Ich habe schon gesagt, dass es jetzt funktioniert.
Meine Farben sind jetzt in einer HashMap gespeichert, aus der die Methode für die Hintergrundfarbe nun ausliest.

Nun kann ich in diesem Spiel nach belieben die Grafik-Farbe wechseln und die Grafiken und der Hintergrund sind immer schön aufeinander abgestimmt.

Ein wenig wie die Akzent-Farbe von Windows 10.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
ich habe @Robats Antwort zu dem Zeitpunkt noch nicht gesehen.
Ich habe wohl vergessen, die Seite zu aktualisieren, als ich meinen beitrag überarbeiten wollte.

Und dann erst wieder eine ganze Weile später nochmal geguckt. dann erst habe ich sie gefunden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
N Eine stelle der Fibonacci-Zahlenfolge ausgeben. Allgemeine Java-Themen 4
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
I Eine Anwendung so gut wie möglich beschützen Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Login in eine Webseite mit Java Allgemeine Java-Themen 3
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
M Schlüsselworte Was ist eine Java Spezifikation + JSR? Allgemeine Java-Themen 11
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
E RMI FWH: RMI- Wie erstelle ich stubs dynamisch, bzw. unterdrücke eine Statisch-Warnung? Allgemeine Java-Themen 0
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
A Best Practice Java - eine Art Plugin-Struktur Allgemeine Java-Themen 3
S wie rufe ich mit .jar datei eine .bat auf? Allgemeine Java-Themen 15
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
E Methoden Hat jemand eine gute Lösung? Allgemeine Java-Themen 5
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
0 Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
Tausendsassa Interface Eine Gui von einer anderen schließen lassen Allgemeine Java-Themen 3
S Threads Kann mir jemand helfen eine parallele Hilfsklasse zu implementieren..? Allgemeine Java-Themen 3
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10
P Dezimalzahl in eine Binärzahl umrechnen Allgemeine Java-Themen 12
M Eine static-Methode verlassen Allgemeine Java-Themen 2
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Thallius Wie mache ich eine Java App mit Icon startbar die mehr Heap Speicher braucht? Allgemeine Java-Themen 3
M Eclipse Eine xhtml aus einem JSF Projekt starten Allgemeine Java-Themen 2
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Sogomn Klassen Alle in eine Klasse Allgemeine Java-Themen 11
S Eine Klasse die jeden String nur einmal annimmt Allgemeine Java-Themen 4
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
L Leerzeichen zu string hinzufügen, um eine gerade zahl zu erhalten Allgemeine Java-Themen 9
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
A Eine Spezifikation für meine Bachelorarbeit! Allgemeine Java-Themen 3
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
J Ist eine Instanz von einem bestimmten Object Typ? Allgemeine Java-Themen 6
O Prüfen ob String eine Zahl mit maximal 2 Nachkommastellen ist Allgemeine Java-Themen 4
X Schauen ob eine bestimmte .exe geöffnet ist Allgemeine Java-Themen 7
C Eine Frage zur Bearbeitungszeit Allgemeine Java-Themen 8
M Liste von Pfaden in eine textArea schreiben Allgemeine Java-Themen 7
antonbracke Aus Jar eine Class laden und damit arbeiten! Allgemeine Java-Themen 5
J kann eine .jar sich selbst verschieben? Allgemeine Java-Themen 6
S Swing Text in eine JTextArea schreiben Allgemeine Java-Themen 17
S Welcher Schleifen type für eine Berechnung Allgemeine Java-Themen 7
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
K Gepacktes Jar-File gibt beim Doppelklick eine Exception aus Allgemeine Java-Themen 4
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
P Sinnfragen, um eine riesige Verzeichnisstruktur zu durchsuchen und zu verarbeiten Allgemeine Java-Themen 20
A eine test thread.join() frage Allgemeine Java-Themen 2
C Was bekomme ich eine Nullpointerexception? (Apache POI) Allgemeine Java-Themen 3
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
L Eine jar verwenden, die intern auf eine andere jar zugreift Allgemeine Java-Themen 7
B JAR Datei führt eine andere JAR Datei aus Allgemeine Java-Themen 2
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
H Eine .java-Datei aus der Windowskommandozeile komplilieren - wie? Allgemeine Java-Themen 7
I Eine Zahlenreihe zu Intervallen zusammenfassen Allgemeine Java-Themen 2
S Datensätze in eine ArrayList<Movie> speichern Allgemeine Java-Themen 13

Ähnliche Java Themen

Anzeige

Neue Themen


Oben