La clase Component tiene tres métodos muy importantes relacionados con gráficos: paint(),
repaint() y updatef). Cuando el usuario llama al método repaintO de im componente, el AWT llama
al método updatef) de ese componente, que por defecto llama al método paintQ.
Método paint(Graphics g)
El método paintO está definido en la clase Component. pero ese método no hace nada y hay que
redefinirlo en una de sus clases derivadas. El programador no tiene que preocuparse de llamar a este
método: el sistema operativo lo llama al dibujar por primera vez una ventana, y luego lo vuelve a
llamar cada vez que entiende que la ventana o una paite de la ventana debe ser re-dibujada (por
ejemplo, por haber estado tapada por otra ventana y quedar de nuevo a la vista).
Método update(Graphics g)
El método updateQ hace dos cosas: primero re-dibuja la ventana con el color de fondo y luego
llama al método paintf). Este método también es llamado por el AWT. y también puede ser llamado
por el programador, quizás porque ha realizado algún cambio en la ventana y necesita que se dibuje
de nuevo.
La propia estructura de este método -el comenzar pintando de nuevo con el color de fondo-
hace que se produzca parpadeo (flicker) en las animaciones. Una de las formas de evitar este efecto
es redeíinir este método de una forma diferente, cambiando de una imagen a otra sólo lo que haya
que cambiar, en vez de re-dibujar todo otra vez desde el principio. Este método no siempre propor-
ciona los resultados buscados y hay que recurrrir al método del doble buffer.
Método repaint()
Este es el método que con más frecuencia es llamado por el programador. El método repaintO llama
"lo antes posible" al método updatef) del componente. Se puede también especificar un número de
milisegundos para que el método update() se llame transcurrido ese tiempo.
El método repaint() tiene las cuatro formas siguientes:
repaint()
repaint(long time)
repaint(int x, int y, int w, int h)
repaint(long time, int x, int y, int w, int h)
Las formas tercera y cuarta permiten definir una zona rectangular de la ventana a la que
aplicar el método.
No hay comentarios:
Publicar un comentario