Gráficos con Java 2D

El mecanismo de renderizado b�sico es el mismo que en las versiones anteriores del JDK -- el sistema de dibujo controla cu�ndo y c�mo dibuja un programa. Cuando un componente necesita ser mostrado, se llama autom�ticamente a su m�todo paint o update dentro del contexto Graphics apropiado.

El API 2D de Java presenta java.awt.Graphics2D, un nuevo tipo de objeto Graphics. Graphics2D desciende de la clase Graphics para proporcionar acceso a las caracter�sticas avanzadas de renderizado del API 2D de Java.

Para usar las caracter�sticas del API 2D de Java, tenemos que forzar el objeto Graphics pasado al m�todo de dibujo de un componente a un objeto Graphics2D.

public void Paint (Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    ...
}

.� Contexto de Renderizado de Graphics2D

Al conjunto de atributos de estado asociados con un objeto Graphics2D se le conoce como Contexto de Renderizado de Graphics2D. Para mostrar texto, formas o im�genes, podemos configurar este contexto y luego llamar a uno de los m�todos de renderizado de la clase Graphics2D, como draw o fill . C�mo muestra la siguiente figura, el contexto de renderizado de Graphics2D contiene varios atributos.

�
El estilo de l�piz que se aplica al exterior de una forma. Este atributo stroke nos permite dibujar l�neas con cualquier tama�o de punto y patr�n de sombreado y aplicar finalizadores y decoraciones a la l�nea.
�
El estilo de relleno que se aplica al interior de la forma. Este atributo paint nos permite rellenar formas con c�lores s�lidos, gradientes o patrones.
�
El estilo de composici�n se utiliza cuando los objetos dibujados se solapan con objetos existentes.
�
La transformaci�n que se aplica durante el dibujado para convertir el objeto dibujado desde el espacio de usuario a las coordenadas de espacio del dispositivo. Tambi�n se pueden aplicar otras transformaciones opcionales como la traducci�n, rotaci�n escalado, recortado, a trav�s de este atributo.
�
El Clip que restringe el dibujado al �rea dentro de los bordes de la Shape se utiliza para definir el �ra de recorte. Se puede usar cualquier Shape para definir un clip.
�
La fuente se usa para convertir cadenas de texto.
�
Punto de Renderizado que especifican las preferencias en cuanto a velocidad y calidad. Por ejemplo, podemos especificar si se deber�a usar antialiasing, si est� disponible.

Para configurar un atributo en el contexto de renderizado de Graphics2D, se usan los m�todos set Attribute.

  • setStroke
  • setPaint
  • setComposite
  • setTransform
  • setClip
  • setFont
  • setRenderingHints

Cuando configuramos un atributo, se el pasa al objeto el atributo apropiado. Por ejemplo, para cambiar el atributo paint a un relleno de gradiente azul-gris, deber�amos construir el objeto GradientPaint y luego llamar a setPaint.

gp = new GradientPaint(0f,0f,blue,0f,30f,green);
g2.setPaint(gp);

Graphics2D contiene referencias a sus objetos atributos -- no son clonados. Si modificamos un objeto atributo que forma parte del contexto Graphics2D, necesitamos llamar al m�todo set para notificarlo al contexto. La modificaci�n de un atributo de un objeto durante el renderizado puede causar comportamientos impredecibles.

.�M�todos de renderizado de Graphics2D

Graphics2D proporciona los siguientes m�todos generales de dibujado que pueden usarser para dibujar cualquier primitivo geom�trico, texto o imagen.

  • draw--dibuja el exterior de una forma geom�trica primitiva usando los atributos stroke y paint.
  • fill--dibuja cualquier forma geom�trica primitiva rellenado su interior con el color o patr�n especificado por el atributo paint.
  • drawString--dibuja cualquier cadena de texto. El atributo font se usa para convertir la fuente a glyphs que luego se rellenan con el color o patr�n especificados por el atributo paint.
  • drawImage--dibuja la imagen especificada.

Adem�s, Graphics2D soporta los m�todos de renderizado de Graphics para formas particulares, como drawOval y fillRect.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO