Renderizado en 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.