Vereinfachung von if- Abfragen

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

ich habe unteren Code in meinem Programm und frage mich, ob das nicht irgendwie einfacher zu machen ist, bzw. nicht einfacher aber mit weniger Zeilen Code.
Hat da jemand einen Tipp.

Vielen DANK!!

lg
Michl



Code:
if (hgFarbeAnzeige.equals("hellgrau"))
	    wertAnzeige.setBackground(Color.LIGHT_GRAY);
	else if (hgFarbeAnzeige.equals("grau"))
	    wertAnzeige.setBackground(Color.GRAY);
	else if (hgFarbeAnzeige.equals("gruen"))
	    wertAnzeige.setBackground(Color.GREEN);
	else if (hgFarbeAnzeige.equals("rot"))
	    wertAnzeige.setBackground(Color.RED);
	else if (hgFarbeAnzeige.equals("blau"))
	    wertAnzeige.setBackground(Color.BLUE);
	else if (hgFarbeAnzeige.equals("weiss"))
	    wertAnzeige.setBackground(Color.WHITE);
	else if (hgFarbeAnzeige.equals("gelb"))
	    wertAnzeige.setBackground(Color.YELLOW);
 

schalentier

Gesperrter Benutzer
Ja mit einer HashMap:
Code:
HashMap<String, Color> colorMap = ..;

colorMap.put( "grau", Color.LIGHT_GRAY );
...

Color bgCol = colorMap.get( hgFarbAnzeige );
wertAnzeige.setBackground( bgCol );

Werden zwar nicht weniger Zeilen, aber ist eindeutig besserer Code ;-)
 

MQue

Top Contributor
Und wie kann ich das genau machen -> is mir nicht ganz klar, was ich in der ersten Zeile hinschreibe.

Vielen DANK für die Hilfe.

lg


schalentier hat gesagt.:
Code:
HashMap<String, Color> colorMap = ..;

colorMap.put( "grau", Color.LIGHT_GRAY );
...
 

schalentier

Gesperrter Benutzer
Code:
HashMap<String, Color> colorMap = new HashMap<String,Color>();

colorMap.put( "hellgrau", Color.LIGHT_GRAY );
colorMap.put( "grau",     Color.GRAY );
colorMap.put( "gruen",    Color.GREEN );
colorMap.put( "rot",      Color.RED );
...

Anstatt der if-Kaskade:

Color bgCol = Color.BLACK; // default Farbe

if( colorMap.containsKey( hgFarbAnzeige ) ) { // string in der Map?
  bgCol = colorMap.get( hgFarbAnzeige ); // dann zugehoerige Color rausholen
}

wertAnzeige.setBackground( bgCol ); // farbe setzen
 

MQue

Top Contributor
genau, das wollt ich auch gerade noch schreiben "containsKey".

Eine Frage hätte ich noch: kann ich das auch irgendwie machen:
HashMap<String,Border> borderMap = new HashMap<String,Border>(); -> so gehts nämlich nicht.
Mit Border ist gemeint: BeveledBorder, SoftBeveledBorder, TitleBorder usw.
Vielen Dank für Deine Hilfe!!!
Danke

lg
Michl
 

MQue

Top Contributor
Schon alleine wenn ich das hinschreibe: HashMap<String,Border> borderMap = new HashMap<String,Border>();
dann zeigt er mir einen Fehler an obwohl ich ja alles übergeben kann, da ja <Object, Object> verlangt wird und ja alles von Objekt abgeleitet ist (ich hoffe das stimmt)

lg
 

EOB

Top Contributor
ja, ich nehme an, du hast kein java 5 oder du hast java 5 und deine ide kann das nicht erkennen. also:

welche java version und welche ide nutzt du?

grüße

ps: was von wo abgeleitet ist kannst du ja in der api nachlesen... :meld: :D
 

EOB

Top Contributor
geh doch mal auf die konsole undschreib: java -version. dann poste mal die ausgabe

grüße
 

MQue

Top Contributor
Ich hab die Version 1.5.0, wenn ich eben das untere Eingebe:
HashMap<String,Border> borderMap5 = new HashMap<String,Border>();
bekomme ich: cannot find symbol.
Ich möchte das untere eben in eine HashMap geben, da ich die Border sehr oft in meinem Programm brauche.

Vielen Dank für Eure Hilfe.

lg
Michl




Code:
if (borderWertAnzeig.equals("BeveledBorder"))
	    wertAnzeige.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
	else if (borderWertAnzeig.equals("SoftBeveledBorder"))
	    wertAnzeige.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
	else if (borderWertAnzeig.equals("EtchedBorder"))
	    wertAnzeige.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.BevelBorder.LOWERED));
	else if (borderWertAnzeig.equals("LineBorder"))
	    wertAnzeige.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
 
B

bygones

Gast
hast die du Klassen auch importiert ?

also java.util.HashMap usw ?
 

MQue

Top Contributor
Ja ich hab util importiert, es geht ja, wenn ich schreibe:
HashMap<String, Color> colorMap = new HashMap<String,Color>(); -> das funktioniert, nur mit Border eben nicht



C:\.java:52: cannot find symbol
symbol : class Border
location: class net.hashMap
HashMap<String,Border> borderMap9 = new HashMap<String,Border>();
^
C:.java:52: cannot find symbol
symbol : class Border
location: class net.hashMap
HashMap<String,Border> borderMap9 = new HashMap<String,Border>();
^
2 errors
BUILD FAILED (total time: 0 seconds)
 

MQue

Top Contributor
Ja, hab ich auch, es geht ja schon, nur mit if- Schleifen eben und ich möchte es eben mit einer HashMap machen.
 
B

bygones

Gast
kannst du mal deinen code zeigen....

ne andere frage... woher kommt die variable hgFarbeAnzeige... gibt die der user ein oder so ? per textfeld oder wie... weil wenn es moeglich waere, waere es am einfachsten einfach ueberall intern mit Color.GRAY oder so au arbeiten und nicht noch Strings nehmen
 

MQue

Top Contributor
ich werds mal so lassen, keine Ahnung was es da bei mir hat.

Vielen DANK auf jeden Fall für eure Antworten
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Vereinfachung durch interface Allgemeine Java-Themen 2
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
VfL_Freak KeyEvent.VK_TAB im KeyListener abfragen Allgemeine Java-Themen 13
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
D TextBox Abfragen Allgemeine Java-Themen 2
kodela aktuelle Position des Hauptfensters abfragen Allgemeine Java-Themen 12
J Tonhöhe & Lautstärke abfragen? Allgemeine Java-Themen 3
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
P Threads Parallelisierte DB-Abfragen mit variabler Anzahl an Threads Allgemeine Java-Themen 4
MiMa Variableninhalte dynamisch abfragen Allgemeine Java-Themen 12
A Erste Schritte If Abfragen + Scanner Allgemeine Java-Themen 7
Z AD Abfragen mit Java! Allgemeine Java-Themen 3
L Abfragen ob Threads fertig Allgemeine Java-Themen 3
chuxXo BasicPlayer - Beendigung Abfragen (Allgemein) Allgemeine Java-Themen 21
P Name der Parent Klasse abfragen Allgemeine Java-Themen 8
H In windowClosing() abfragen, ob STRG gedrückt wurde Allgemeine Java-Themen 8
M Aktuelle Systemzeit und Datum abfragen Allgemeine Java-Themen 2
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
P Klassen Template-Klasse für Datenbank-Abfragen erstellen Allgemeine Java-Themen 2
J XML Inhalt von Web abfragen Allgemeine Java-Themen 6
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
S HTTP Filmgenre aus dem Internet abfragen! Allgemeine Java-Themen 6
M Zahl aktiver Threads einer Gruppe verlässlich abfragen Allgemeine Java-Themen 3
R Was ist hier falsch? Abfragen Allgemeine Java-Themen 3
E Unique Ids abfragen? Allgemeine Java-Themen 5
Airwolf89 Wahrheitstabelle abfragen Allgemeine Java-Themen 3
M ständiges abfragen einer .txt Allgemeine Java-Themen 2
S Zeitserver Abfragen und in Date speichern Allgemeine Java-Themen 5
V Hostname abfragen gelingt nicht immer Allgemeine Java-Themen 2
H Windows abfragen Allgemeine Java-Themen 2
M Enter Taste in Konsole abfragen Allgemeine Java-Themen 2
N IP-Adresse Eingabe abfragen? Allgemeine Java-Themen 4
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
C Batchdatei ausführen und Ergebnisse abfragen Allgemeine Java-Themen 8
M Vermeiden von instanceof Abfragen Allgemeine Java-Themen 3
M SQL-Installation abfragen Allgemeine Java-Themen 14
Z Wetterdaten abfragen Allgemeine Java-Themen 5
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
R Zugriffsrechte abfragen Allgemeine Java-Themen 2
R boolean im Bean abfragen Allgemeine Java-Themen 18
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Mausbewegung abfragen? Allgemeine Java-Themen 2
C Binärbereich einer Variablen abfragen Allgemeine Java-Themen 8
S Datenbank Abfragen mit großen Datenmengen Allgemeine Java-Themen 22
H Mit Java Desktop abmessungen height/width abfragen Allgemeine Java-Themen 20
H Sekunden messen wie lange h.ibernate/jdbc abfragen brauchen Allgemeine Java-Themen 7
G Abfragen des types Allgemeine Java-Themen 7
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
P verfügbare COM Schnitstellen abfragen Allgemeine Java-Themen 4
P <null> in einer DB abfragen Allgemeine Java-Themen 4
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
T Tastatur global abfragen Allgemeine Java-Themen 2
M Map gezielt abfragen? Allgemeine Java-Themen 5
Chris_1980 Mausbewegung abfragen Allgemeine Java-Themen 4
E Events von inneren Klasse abfragen Allgemeine Java-Themen 7
B jre version in der html-datei für ein applet abfragen Allgemeine Java-Themen 5
S Prozessorauslastung abfragen Allgemeine Java-Themen 2
C Tastatureingabe in einem Frame abfragen Allgemeine Java-Themen 2
R Thread.sleep - abfragen Allgemeine Java-Themen 4
S Name der ausführenden jar-Datei abfragen Allgemeine Java-Themen 11
S Abfragen der Komponente bei actionperformed Allgemeine Java-Themen 2
A Dateistatus abfragen und Datei löschen sobald kein Zugriff Allgemeine Java-Themen 7
G JavaMail - Message vom Server, wie abfragen? Allgemeine Java-Themen 2
J Name des aktuell aktiven Windows-Fensters abfragen? Allgemeine Java-Themen 4
T Bittorrent TRACKER abfragen mit JAVA Allgemeine Java-Themen 4
C Threads abfragen, aber wie? Allgemeine Java-Themen 3
J ArrayList mit SQL abfragen ? Allgemeine Java-Themen 6
thE_29 ? in einem String abfragen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben