Las animaciones java tienen un gran interés desde diversos puntos de vista. Una imagen vale más que mil palabras y
una imagen en movimiento es todavía mucho más útil. Para presentar o describir ciertos conceptos el movimiento animado es
fundamental. Además, las animaciones o mejor dicho, la forma de hacer animaciones en Java ilustran mucho la forma en que dicho
lenguaje realiza los gráficos.
Se pueden hacer animaciones java de una forma muy sencilla: se define el método paint() de forma que cada vez que sea llamado dibuje algo
diferente de lo que ha dibujado la vez anterior. De todas formas, recuérdese que el programador no llama directamente a este método.
El programador llama al método repaint(), quizás dentro de un bucle while que incluya una llamada al método sleep() de la clase
Thread, para esperar un cierto número de milisegundos entre dibujo y dibujo (entre frame y frame, utilizando la terminología de las
animaciones). Recuérdese que repaint() llama a update() lo antes posible, y que update() borra todo redibujando con el color de fondo
y llama a paint(). Para tener buenas bases en java recomendamos este
curso de java presencial y 100% práctico.
La forma de proceder descrita da buenos resultados para animaciones muy sencillas, pero produce parpadeo o flicker cuando los gráficos son un poco más complicados. La razón está en el propio proceso descrito anteriormente, combinado con la velocidad de refresco del monitor. La velocidad de refresco vertical de un monitor suele estar entre 60 y 75 herzios. Eso quiere decir que la imagen se actualiza unas 60 ó 75 veces por segundo. Cuando el refresco se realiza después de haber borrado la imagen anterior pintando con el color de fondo y antes de que se termine de dibujar de nuevo toda la imagen, se obtiene una imagen incompleta, que sólo aparecerá terminada en uno de los siguientes pasos de refresco del monitor. Ésta es la causa del flicker. A continuación se verán dos formas de reducirlo o eliminarlo.
El problema del flicker se localiza en la llamada al método update(), que borra todo pintando con el color de
fondo y después llama a paint(). Una forma de resolver esta dificultad es re-definir el método update(), de forma que se adapte
mejor al problema que se trata de resolver.
Una posibilidad es no re-pintar todo con el color de fondo, no llamar a paint() e introducir en update() el código encargado de
realizar los dibujos, cambiando sólo aquello que haya que cambiar. A pesar de esto, es necesario re-definir paint() pues es el método
que se llama de forma automática cuando la ventana de Java es tapada por otra que luego se retira. Una posible solución es hacer que
paint() llame a update(), terminando por establecer un orden de llamadas opuesto al de defecto. Hay que tener en cuenta que, al no
borrar todo pintando con el color de fondo, el programador tiene que preocuparse de borrar de forma selectiva entre frame y frame lo
que sea necesario. Los métodos setClip() y clipRect() de la clase Graphics permiten hacer que las operaciones gráficas no surtan
efecto fuera de un área rectangular previamente determinada. Al ser dependiente del tipo de gráficos concretos de que se trate, este
método no siempre proporciona soluciones adecuadas. Para conocer aun mas de la tecnología java dejamos este
curso de java donde podrás aprender paso a paso.
Si quieres revisar los comandos para autocad da clic aqui.
Diseño de paginas Web Grupo Codesi