Seguimos adelante con las GUIs en el curso de Java de RedesZone. En la anterior entrega os propusimos un ejemplo en el cual veíais como se podían emplear los diferentes distribuidores de elementos (por si no lo recordáis eran el BorderLayout, GridLayout, FlowLayout) así como su comportamiento.
En la entrega de esta semana vamos a enseñaros como podéis pintar gráficos sobre un panel. Al principio os podrá parecer un poco aburrido y daros la sensación de que se pueden hacer muy pocas cosas. Pero esto es solo el principio y lo más básico. Ya que después de esto, se pueden hacer muchas más cosas con la clase Graphics de Java que es la que nos va a ocupar en el día de hoy.
Por lo tanto hoy empezaremos con cosas sencillas, tales como dibujar formas geométricas o como crear un panel que sirva como base a un dibujo. Después este panel puede añadirse a una GUI más compleja, pero de momento vamos con lo más básico.
Hay que tener una cosa clara y es que cada ventana tiene asociado un panel (Content pane) en el cuál se pueden realizar dibujos. Este panel se puede cambiar siempre que nosotros queramos con el método void setContentPane(Container contentPane), y también podemos el panel actual que estamos utilizando con el método Container getContentPane().
¿Cómo realizar dibujos en un panel?
Es muy importante que antes de que nos pongamos a programar dejar una cosa muy clara. El panel tiene asociado un sistema de coordenadas, por lo tanto, a la hora de elegir la ubicación del dibujo deberemos elegir las coordenadas para colocar el centro de cada una de las figuras que dibujemos.
Podéis observar que el punto origen (0,0) se encuentra posicionado en la esquina superior izquierda.
A continuación, vamos a poneros algunos métodos de la clase Graphics y que podréis utilizar para dibujar figuras:
A estas figuras también se las puede asignar un color u obtener el color actual que se esta utilizando los métodos son public void setColor(Color c) para asignar un nuevo color y public Color getColor() para obtener el color actual de la figura.
También tenemos unas variables de la clase Graphics las cuales son los distintos colores:
public final static Color red
public final static Color green
public final static Color blue
public final static Color yellow
public final static Color white
public final static Color black
Existen más que siguen el modelo anterior de declaración y que ya los iréis viendo y utilizando.
Construir nuestros colores y constructores
Una funcionalidad que nos da el paquete Graphics de Java es que podemos configurar nuestros propios colores jugando con los tres colores básicos, rojo, verde y azul. Por lo tanto la imagen rgb, tendrá cada uno de los tres colores un valor que irá desde 0 hasta 255.
public Color(int r, int g, int b)
Existe otro constructor alternativo, y también menos utilizado cuyas variables en vez de ser enteros son Float y por lo tanto el valor de entrada va desde 0.0 a 1.0.
public Color(float r, float g, float b)
Nosotros utilizaremos el primero que es además el más utilizado a día de hoy.
La forma de utilizar los constructores es la siguiente:
g.setColor(new Color(240, 35, 0))
Donde g es una figura de nombre g.
Hasta aquí el volumen de GUIs de hoy. Se ha tratado de un volumen más bien teórico pero no os preocupéis, en el siguiente volumen realizaremos un par de ejercicios con las figuras, paneles y la asignación de los colores y os plantearemos un ejercicio que podréis resolver.