Farben in Variablen speichern

kpj

Mitglied
Hi,
ich habe ein Problem bei der Eingabe eines Nutzers, der eine Farbe selber bestimmen soll:

Java:
String farbe=meinLeser.liesZeichenkette();
            myColor=Color.farbe;

"meinLeser" und "liesZeichenkette" sind schon vorgegeben, um einen String auszulesen.
Wie kriege ich es nun hin, dass ich "myColor" z.B. bei "g.setColor(myColor);" benutzen kann?
Danke schonmal im Vorraus,
kpj
 

nw90

Mitglied
Dazu musst du deine Farbe als "Color" speichern:
Java:
java.awt.Color myColor = new Color(100,100,100);
 

kpj

Mitglied
Deklariert hatte ich sie ja schon mit
Java:
private Color myColor=Color.blue;

Aber jetzt will ich ja, dass man sie durch Eingaben des Benutzers verändern kann.
kpj

PS: danke für deine schnelle Antwort trotzdem^^
 

Der Müde Joe

Top Contributor
>Aber jetzt will ich ja, dass man sie durch Eingaben des Benutzers verändern kann.

geht nicht. neues Color Objekt erstellen ist die alternative
 

kpj

Mitglied
Hm,
habt ihr vll eine Idee wie ich dem Rechteck, das zuerst die Farbe blau hatte
Java:
private Color myColor=Color.blue;
g.setColor(myColor);
g.fillRect(waagerecht, senkrecht, 20, 20);
eine andere Farbe geben könnte?
kpj

Edit:
oder

if (string.equals("red")) {
color = Color.RED;
} else if ..
...
Ups zu früh geschrieben^^Danke für den Tipp
Wenn das Gegenteil für "==", "!=" wäre,
was wäre dann das Gegenteil zu "string.equals("text")" ?
 
Zuletzt bearbeitet:

Der Müde Joe

Top Contributor
Java:
g.setColor(myColor);
g.fillRect(waagerecht, senkrecht, 20, 20);

// und dan dort wo due die Farbe änderst
myColor = Color.GREEN;
repaint();

EDIT:
In der Annahme, dass das ganze g... Zeugt in der paintComponent-Methode drin ist, was auch sein sollte.
 
S

SlaterB

Gast
klar, füge folgende Befehle aus:

g.setColor(andereColor);
g.fillRect(waagerecht, senkrecht, 20, 20);

ansonsten kannst du einmal gezeichnetes nicht mehr beeinflussen, das ist kein fassbares Objekt,
sondern 400 Pixel von x000, die zufällig eine bestimmte Farbe haben

was anderes wäre es, wenn man seine Daten als Objekte der Klasse Recheckt usw. in einer Liste speichert,
die kann man leicht in ihrer Farbe ändern (und dann immer noch neuzeichen)
 

Der Müde Joe

Top Contributor
ein kleines Beispiel:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JFSize {

	private static Color color = Color.GREEN;
	
	private static final int SIZE = 200;

	public static void main(String[] args) {
		JFrame frame = new JFrame("Foo");
		frame.setPreferredSize(new Dimension(SIZE, SIZE));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel panel = new JPanel();
		panel.setLayout(new BorderLayout());
		
		final JPanel drawPanel = new JPanel() {
			@Override
			public void paintComponent(Graphics g) {
				super.paintComponent(g);
				g.setColor(color);
				g.fillRect(0, 0, 100, 100);
			}
		};

		JButton button = new JButton("OK");
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if(color == Color.GREEN) {
					color = Color.RED;
					drawPanel.repaint();
				} else {
					color = Color.GREEN;
					drawPanel.repaint();
				}
			}
		});
		panel.add(button, BorderLayout.SOUTH);
		panel.add(drawPanel, BorderLayout.CENTER);
		frame.getContentPane().add(panel);
		
		frame.pack();
		frame.setVisible(true);
	}
}
 

kpj

Mitglied
So ähnlich mit dem "if-else"-Prinzip hab ichs auch gemacht
Java:
if(antwort==1)
        {        
            write("Mögliche Farben: red, blue, green, yellow, cyan, white^^",50);
            String farbe=meinLeser.liesZeichenkette();
            if(farbe.equals("red"))
            {
                myColor=Color.red;
            }
            if(farbe.equals("blue"))
            {
                myColor=Color.blue;
            }
            if(farbe.equals("green"))
            {
                myColor=Color.green;
            }
            if(farbe.equals("yellow"))
            {
                myColor=Color.yellow;
            }
            if(farbe.equals("cyan"))
            {
                myColor=Color.cyan;
            }
            if(farbe.equals("white"))
            {
                myColor=Color.white;
            }
        }

kpj
 

Der Müde Joe

Top Contributor
alternativ könnte man eine Map benutzen:
Java:
Map<String, Color> colorMap = new HashMap<String, Color>();
colorMap.put("red", Color.RED);
colorMap.put("blue", Color.BLUE);
colorMap.put("green", Color.GREEN);

System.out.println(colorMap.get("red"));
System.out.println(colorMap.get("green"));

//EDIT:
Color color = colorMap.get("idontknow");
if(color == null) {
	color = Color.BLACK;
}
System.out.println(color);
;-)
 
S

Spacerat

Gast
Schon länger her, da schrieb ich mal eine Erweiterte Color-Klasse, um standard HTML-Farben (Strings wie z.B. "#9afde4", "rgb(10%, 20%, 30%)", "rgb(45, 34, 56)" oder "maroon") zu parsen um eine entsprechende Farbe zu bekommen. Hier mal ein Auszug:
Java:
import java.awt.color.ColorSpace;

public final class Color
extends java.awt.Color
{
	/**
	 * serial version uid
	 */
	private static final long serialVersionUID = 6674118578427330427L;

	/*
	 * 16 predefined colors. Theese colors are considered to be html
	 * standard colors. Therefore some colors own the same names as
	 * in "java.awt.Color", but doesn't have the same values.
	 */
	@SuppressWarnings("hiding")
	public static final Color black = new Color(0, 0, 0);
	public static final Color maroon = new Color(128, 0, 0);
	@SuppressWarnings("hiding")
	public static final Color green = new Color(0, 128, 0);
	public static final Color olive = new Color(128, 128, 0);
	public static final Color navy = new Color(0, 0, 128);
	public static final Color purple = new Color(128, 0, 128);
	public static final Color teal = new Color(0, 128, 128);
	public static final Color silver = new Color(192, 192, 192);
	@SuppressWarnings("hiding")
	public static final Color gray = new Color(128, 128, 128);
	@SuppressWarnings("hiding")
	public static final Color red = new Color(255, 0, 0);
	public static final Color lime = new Color(0, 255, 0);
	@SuppressWarnings("hiding")
	public static final Color yellow = new Color(255, 255, 0);
	@SuppressWarnings("hiding")
	public static final Color blue = new Color(0, 0, 255);
	public static final Color fuchsia = new Color(255, 0, 255);
	public static final Color aqua = new Color(0, 255, 255);
	@SuppressWarnings("hiding")
	public static final Color white = new Color(255, 255, 255);
	@SuppressWarnings("hiding")
	public static final Color BLACK = black;
	public static final Color MAROON = maroon;
	@SuppressWarnings("hiding")
	public static final Color GREEN = green;
	public static final Color OLIVE = olive;
	public static final Color NAVY = navy;
	public static final Color PURPLE = purple;
	public static final Color TEAL = teal;
	public static final Color SILVER = silver;
	@SuppressWarnings("hiding")
	public static final Color GRAY = gray;
	@SuppressWarnings("hiding")
	public static final Color RED = red;
	public static final Color LIME = lime;
	@SuppressWarnings("hiding")
	public static final Color YELLOW = yellow;
	@SuppressWarnings("hiding")
	public static final Color BLUE = blue;
	public static final Color FUCHSIA = fuchsia;
	public static final Color AQUA = aqua;
	@SuppressWarnings("hiding")
	public static final Color WHITE = white;

	/**
	 * Parses html color strings like "#9afde4", "marron" aso.
	 * @param value
	 * @return instance of color
	 */
	public static Color parseColor(String value)
	{
		Color rc = null;
		value = value.trim();
		int rgb;
		if(value.startsWith("#")) {
			rgb = Integer.parseInt(value.substring(1, 7), 16);
			rc = new Color(rgb, false);
		} else if(value.startsWith("rgb")) {
			value.substring(4,value.length() - 1);
			String tmp[] = value.split(",");
			rgb = 0;
			for(int i = 0; i < tmp.length; i++) {
				rgb <<= 8;
				rgb |= (tmp[i].indexOf("%") <= 0)?
					(int) (Float.parseFloat(tmp[i].substring(0, tmp[i].length() - 1).trim()) * 2.55f)
					: Integer.parseInt(tmp[i].trim());
			}
			rc = new Color(rgb, false);
		} else {
			if(value.equalsIgnoreCase("black")) rc = black;
			if(value.equalsIgnoreCase("maroon")) rc = maroon;
			if(value.equalsIgnoreCase("green")) rc = green;
			if(value.equalsIgnoreCase("olive")) rc = olive;
			if(value.equalsIgnoreCase("navy")) rc = navy;
			if(value.equalsIgnoreCase("purple")) rc = purple;
			if(value.equalsIgnoreCase("teal")) rc = teal;
			if(value.equalsIgnoreCase("silver")) rc = silver;
			if(value.equalsIgnoreCase("gray")) rc = gray;
			if(value.equalsIgnoreCase("red")) rc = red;
			if(value.equalsIgnoreCase("lime")) rc = lime;
			if(value.equalsIgnoreCase("yellow")) rc = yellow;
			if(value.equalsIgnoreCase("blue")) rc = blue;
			if(value.equalsIgnoreCase("fuchsia")) rc = fuchsia;
			if(value.equalsIgnoreCase("aqua")) rc = aqua;
			if(value.equalsIgnoreCase("white")) rc = white;
		}
		if(rc == null) {
			throw new IllegalArgumentException("unkown color description \"" + value + "\"");
		}
		return rc;
	}

	public Color(ColorSpace cspace, float[] components, float alpha)
	{
		super(cspace, components, alpha);
	}

	public Color(float r, float g, float b, float a)
	{
		super(r, g, b, a);
	}

	public Color(float r, float g, float b)
	{
		super(r, g, b);
	}

	public Color(int rgba, boolean hasalpha)
	{
		super(rgba, hasalpha);
	}

	public Color(int r, int g, int b, int a)
	{
		super(r, g, b, a);
	}

	public Color(int r, int g, int b)
	{
		super(r, g, b);
	}

	public Color(int rgb)
	{
		super(rgb);
	}
}
 
Zuletzt bearbeitet von einem Moderator:

kpj

Mitglied
Ich hätte noch eine Frage:
Momentan arbeite ich mit BlueJ.
Wenn ich dann ein Programm schreibe, welches Konsole und ein GUI benutzt ist dies kein Problem.
Wenn ich mein Projekt als .jar exportiere, habe ich erstmal nur das GUI.
Kann ich die Konsole auf irgendeinem anderen Weg bekommen?
kpj
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
Fats Waller Farben mixen für den Hintergrund ? Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
L Input/Output In Farben schreiben Java Basics - Anfänger-Themen 3
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M Hilfe bei Zählen von Farben? Java Basics - Anfänger-Themen 7
A Farben wechseln mit JButton Java Basics - Anfänger-Themen 2
L farben 0xff000000 Java Basics - Anfänger-Themen 2
O Verschiedene Farben in einer GUI Java Basics - Anfänger-Themen 15
Dogge Farben-Spiel Java Basics - Anfänger-Themen 20
L Input/Output [SWT] Mehrere Farben im Text Java Basics - Anfänger-Themen 2
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
C RGB Farben Java Basics - Anfänger-Themen 4
S Wort in zwei farben aufleuchten lassen Java Basics - Anfänger-Themen 2
A Mehrere verschieden Farben / Textfeld Java Basics - Anfänger-Themen 2
B Farben vergleichen Java Basics - Anfänger-Themen 5
B Hex in Int und Farben abschwächen Java Basics - Anfänger-Themen 7
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
J list mit unterschiedlichen farben Java Basics - Anfänger-Themen 6
G Applet und Farben Java Basics - Anfänger-Themen 7
M Raster mit zufälligen Farben Java Basics - Anfänger-Themen 4
L Farbverlauf in Java mit RGB Farben Java Basics - Anfänger-Themen 3
L JLabel mit unterschiedlichen Farben Java Basics - Anfänger-Themen 4
K Schrift und Farben im Frame (Anfänger) Java Basics - Anfänger-Themen 2
P Farben Invertieren per BufferedImageOp Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
S Problem mit PNG (16mio farben.) Java Basics - Anfänger-Themen 4
R Farben in einem Applet Java Basics - Anfänger-Themen 6
E Scrollbar- Farben Java Basics - Anfänger-Themen 5
I Farben bei der Console Java Basics - Anfänger-Themen 2
G Buttons und Farben Java Basics - Anfänger-Themen 6
G buttons mit wechselnden farben belegen Java Basics - Anfänger-Themen 3
Dilandau konstante eigene farben im programm definieren Java Basics - Anfänger-Themen 13
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
A Übergreifende Variablen Java Basics - Anfänger-Themen 17
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
L Variablen in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
J Klassen Variablen in andere Klassen oder Methoden übernehmen Java Basics - Anfänger-Themen 1
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
temi Redundante Variablen Java Basics - Anfänger-Themen 29
Aprendiendo Zweifel mit versteckter Variablen Java Basics - Anfänger-Themen 16
L Variablen einmal nur zu weisen Java Basics - Anfänger-Themen 62
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S Vererbung Variablen klassenübergreifend nutzen Java Basics - Anfänger-Themen 42
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
L Variablen dekleration + reset Java Basics - Anfänger-Themen 16
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben