Una ayuda adicional en este sistema es que alguna veces el AWT llama directamente al método paint() en vez de llamar al método update(). Esto sucede casi siempre como resultado de una reacción del AWT ante un estímulo externo, como que el componente aparezca por primera vez en la pantalla, o el componente sea descubierto tras ocultarse por otra ventana. Aprenderás más sobre los métodos paint() y update() en la explicación Eliminar el Parpadeo, más adelante en esta lección.
El único argumento para los métodos paint() y update() es un objeto Graphics.Los objetos Graphics son la clave para todo el dibujo. Soportan las dos clases básicas de dibujo: gráficos primitivos (como líneas, rectángulos y texto) y las imágenes. Aprenderás sobre los gráficos primitivos en Utilizar Gráficos Primitivos. Aprenderás sobre las imágenes en Utilizar Imágenes.Junto con los métodos suministrados para dibujar gráficos primitivos y las imágenes en la pantalla, un objeto Graphics proporciona un contexto de dibujo manteniendo estados, como el área de dibujo actual o el color de dibujo actual. Se puede dismininuir el área de dibujo actual recortándola, pero nunca se podrá incrementar el tamaño del área de dibujo. De esta forma el objeto Graphics se asegura que los componentes sólo puedan dibujar dentro de su área de dibujo. Aprenderás más sobre el recorte en Sobreescribir el Método update().
Cada componente tiene su propio sistema de coordenadas enteras, que va desde (0,0) hasta (width - 1, height - 1), donde cada unidad representa el tamaño de un pixel. Como muestra la siguiente figura la esquina superior izquierda del área de dibujo del componente es (0,0). La coordenada X se incrementa hacia la derecha, y la coordenada Y se incrementa hacia abajo.Aquí tienes un applet que construiremos más adelante en esta lección. Siempre que pulse dentro del área enmarcada, el applet dibuja un punto donde se pulsó el ratón y muestra una cadena describiendo donde ocurrió la pulsación.
Recuerda que el programa puede llamar al método repaint() del componente para pedir que el AWT llame al método update() del componente. Aquí tienes la descripción de las cuatro formas del método repaint():
- public void repaint()
- Pide al AWT que llame al método update() del componente tan pronto como sea posible. Esta es la forma más frecuentemente utilizada de repaint().
- public void repaint(long time)
- Pide al AWT que llame al método update() del componente dentro de time milisegundos desde ahora.
- public void repaint(int x, int y, int width, int height)
- Pide al AWT que llame al método update() del componente tan pronto como sea posible, pero redibujando sólo la parte especificada del componente.
- public void repaint(long time, int x, int y, int width, int height)
- Pide al AWT que llame al método update() del componente dentro de time milisegundos desde ahora, pero redibujando sólo la parte especificada del componente.