domingo, 16 de octubre de 2011

Graficos y Java 2D : El contexto grafico

Un contexto de graficos en java es un objeto que nos permite dibujar en pantalla, dibujar pixeles en la pantalla que representan texto y otros objetos graficos (como lineas, elipses, rectangulos y otros poligonos). El contexto grafico tambien nos proporciona y nos permite manipular otro conjunto de informacion, como el color de fondo, el font a usar, etc,. La clase Graphics de java es un contexto de graficos, encapsula toda la informacion requerida para dibujar, ademas nos permite dibujar graficos (como lineas, elipses, rectangulos y poligonos).

La clase Graphics es una clase abstracta (es decir, no pueden instanciarse objetos Graphics). Esto contribuye a la portabilidad de java. Como el dibujo se lleva a cabo de diferente manera en cada plataforma que soporta a java, no puede haber una accion de implemento de las herramientas de dibujo en todos los sistemas, es decir, las herramientas usadas para dibujar graficos en windows son distintas a las usadas en linux, o en mac. Cada plataforma tiene su implementacion de la clase Graphics y esta implementacion esta oculta para nosotros por medio de la clase Graphics.

La funcion paint y update nos suministran el contexto grafico del applet o del componente, en otros casos, hemos de obtener el contexto grafico del componente mediante la función getGraphics.Una vez obtenido el contexto grafico podemos llamar desde este objeto a las funciones graficas definidas en la clase Graphics.

public void paint(Graphics g){
   //usar el contexto gráfico g 
}
public void update(Graphics g){ 
   //usar el contexto gráfico g 
}
void funcion(){     
   Graphics g=getGraphics();     
   //usar el contexto gráfico g     
   g.dispose(); 
}

Como vemos en esta porcion de codigo existe una sutil diferencia entre suministrar y obtener el contexto grafico g. Solamente es necesario liberar los recursos asociados al contexto g, mediante la llamada a la función dispose, cuando se obtiene el contexto grafico mediante getGraphics.




No hay comentarios:

Publicar un comentario