Colores de Fuente y Fondo

    Los colores son una parte muy importante en un programa, esto ya lo he explicado en la entrada Area de Texto, pero no esta demas hacer una entrada unicamente para explicar esto.

    Para aplicar esto tenemos dos opciones, colocarle el color que nosotros queramos, o hacer que el usuario decida que color es de su agrado.

    Para colocar nosotros el color que queramos es muy fácil, el código es el siguiente:

             VARIABLE.setBackground(Color.COLOR)

    En donde "VARIABLE" es la variable a la cual queremos aplicar el color, y "COLOR" es el color que deseamos aplicar, por ejemplo, si queremos el color azul escribimos

             VARIABLE.setBackground(Color.blue)

    El color debe ir siempre en inglés, asi que es bueno tener un diccionario o una ventana abierta con un traductor al momento de seleccionar otros colores, la palabra "Background" significa fondo y "set" significa setear o colocar, por lo tanto si analizamos esto diria "colocar fondo(color de fondo)", simple no!?.

    Para cambiar el color del texto escribimos lo siguiente:

             VARIABLE.setForeground(color.COLOR)

    Igual que en el fondo, aqui manejamos una variable a la cual sera aplicada el nuevo color, y entre parentesis el nombre del color en inglés que vamos a aplicar. Por ejemplo, si queremos el color de la letra amarilla, escribimos:

             VARIABLE.setForeground(color.yellow)

    Esto es fácil de aplicar si nosotros somo quienes elegimos que colores va a tener la aplicación, pero ¿qué pasa si al usuario no le agradan los colores y desea cambiarlos?, pues simplemente usamos el selector de colores que posee Java para aplicar los colores que el usuario seleccione, bien ya sea a un fondo o al color de la fuente.

    Los pasos a seguir para esto son:

- Crear un objeto del tipo JColoChooser

    JColorChooser nuevoColor= new JColorChooser()

- Hacemos que ese objeto sea visible

    nuevoColor.setVisible(true)

- Creamos una variable del tipo "Color"

    Color NUEVO;

- Aplicamos un diálogo mostrando el objeto para mostrar el selector de colores, y aplicarlo al color de fondo o al color de la fuente

    NUEVO=nuevoColor.showDialog(null,"Seleccione el color",COLOR);

    En donde "COLOR" es el método que vamos a emplear, por ejemplo si es para el color de fondo sustituimos "COLOR" por "VARIABLE.setBackground(color.COLOR)".

    Para que veamos mejor esto, he hecho un ejemplo con un Frame utilizando un "TextArea", en el ejemplo estan tres opciones, la de cambiar el color de fondo, el color de la fuente y la de salir.

import java.io.*;
import java.awt.*;
import javax.swing.*;

@SuppressWarnings("deprecation") //Recompilación -XLint
public class COLORES extends Frame
{
//Variables globales

MenuBar barra = new MenuBar();

Menu acciones = new Menu("Acciones");

TextArea Texto = new TextArea();

public COLORES()
{
super("Created by CarlitoX"); //Inicialización de la ventana
this.setSize(500, 500);

add(Texto);

//Inicializacion del menú

setMenuBar(barra);
barra.add(acciones);

acciones.add(new MenuItem("Color del Texto"));
acciones.add(new MenuItem("Color del Fondo"));
acciones.add(new MenuItem("Salir"));

}

public boolean handleEvent(Event evt)
{
if (evt.id == Event.WINDOW_DESTROY) //Método para cerrar
System.exit(0); //el Frame (ventana)

if (evt.target instanceof MenuItem) //Métodos a utilizar para cada opción
{
if("Salir".equals(evt.arg))
System.exit(0);

if("Color del Texto".equals(evt.arg))
ColorTexto();

if("Color del Fondo".equals(evt.arg))
ColorFondo();

return (true);
}

return super.handleEvent(evt);
}

void ColorTexto() //Método para seleccionar el color de la fuente
{
try
{
JColorChooser nuevoColor = new JColorChooser();
nuevoColor.setVisible(true);
Color nuevo = nuevoColor.showDialog(null,"Seleccione el color del texto",Texto.getForeground());
if (nuevo != null)
Texto.setForeground(nuevo);
}
catch(Exception exp)
{System.out.println(exp);}
}

void ColorFondo() //Método para seleccionar el color del fondo
{
try
{
JColorChooser nuevoColor = new JColorChooser();
nuevoColor.setVisible(true);
Color nuevo = nuevoColor.showDialog(null,"Seleccione el color del texto",Texto.getForeground());
if (nuevo != null)
Texto.setBackground(nuevo);
}
catch(Exception exp)
{System.out.println(exp);}
}

public static void main (String [] args) throws IOException
{
//Inicializar el Frame antenariormente definido

COLORES programa = new COLORES();
programa.setVisible(true);
}
}

    El selector de colores de Java se maneja como un objeto, por lo tanto también podemos aplicarlo a los diálogos creados con "JOptionPane", aunque no podemos hacerlo asi como asi, para esto debemos crear otro objeto con los colores ya definidos y luego insertarlo, de igual forma esto lo explicare más adelante en otra entrada.



Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión