Transformando String em Color?

4 respostas
Y

Eu queria saber, como eu pego o valor de um textfield(string) e transformo em Color? Pra ser mais exato:

public void paintComponent(Graphics graphics)    {

Graphics2D g = (Graphics2D) graphics.create();

g.setColor(Color.BLACK);

g.dispose();

}

O que eu quero é transforma essa string e colocar em uma variavel, e usar a variavel aqui:

g.setColor(Color.Variavel);

Alguem sabe como faço isso?

4 Respostas

starkiller

Atribui a esse teu atributo, o codigo RGB ou Exadecimal da com que vc quer.

inacio.ferrarini

Você tem algumas alternativas

java.awt.Color cor = Color.decode(0xFF0000);

java.awt.Color cor = Color.decode(0xFF0000);

java.awt.Color cor = Color.decode("#FF0000"); //dizem que esse funciona, mas eu nunca usei desse jeito

java.awt.Color cor = new Color(r, g, b);

java.awt.Color cor = new Color(r, g, b, a);
Y

inacio.ferrarini:
Você tem algumas alternativas

java.awt.Color cor = Color.decode(0xFF0000);

java.awt.Color cor = Color.decode(0xFF0000);

java.awt.Color cor = Color.decode("#FF0000"); //dizem que esse funciona, mas eu nunca usei desse jeito

java.awt.Color cor = new Color(r, g, b);

java.awt.Color cor = new Color(r, g, b, a);

Eu crio uma variavel desse tipo? é isso?

Mais ai eu converto o valor como? Da string?

Pq o cara vai escrever, sei la, GREEN no textfield, ai fika como?

cor = textfield.getText()?
nao pode ser só isso :shock:

luistiagos

Yakkut:
inacio.ferrarini:
Você tem algumas alternativas

java.awt.Color cor = Color.decode(0xFF0000);

java.awt.Color cor = Color.decode(0xFF0000);

java.awt.Color cor = Color.decode("#FF0000"); //dizem que esse funciona, mas eu nunca usei desse jeito

java.awt.Color cor = new Color(r, g, b);

java.awt.Color cor = new Color(r, g, b, a);

Eu crio uma variavel desse tipo? é isso?

Mais ai eu converto o valor como? Da string?

Pq o cara vai escrever, sei la, GREEN no textfield, ai fika como?

cor = textfield.getText()?
nao pode ser só isso :shock:

isto: cor = textfield.getText() nunca vai funcionar, pois cor não é uma String…
vc teria que fazer algo como isto:

if (textfield.getText().equals("GREEN")) {
   cor = Color.GREEN
}

Se tiver muitas cores e quiser evitar uma porrada de ifs poderá fazer o seguinte:

Map<String,Color> map = new HashMap<String,Color>();

map.put("GREEN",Color.GREEN);
map.put("RED",Color.RED);
//e porai vai...

cor = map.get(textfield.getText());
Criado 31 de março de 2011
Ultima resposta 31 de mar. de 2011
Respostas 4
Participantes 4