viernes, 17 de enero de 2014

la Clase Graphics Manual de la clase graphics

La clase graphics
La clase Graphics
Anterior | Siguiente
La clase Graphics es la clase base abstracta que proporciona toda, o al menos la mayoría, de la funcionalidad para poder pintar tanto sobre componentes como sobre imágenes fuera de pantalla.
Un objeto Graphics encapsula la siguiente información que será necesaria a la hora de las operaciones básicas de pintado.
  • El objeto de tipo Component sobre el que se pinta.
  • Un origen de traslación para coordenadas de pintado y clipping.
  • La región actual ocupada por el componente.
  • El color actual.
  • La fuente de caracteres actual.
  • La operación lógica actual para utilizar con pixeles (XOR o Paint).
  • La actual alteración de color XOR.
Por lo tanto, lo que sucede cuando se utiliza uno de los métodos de Graphics para dibujar una línea o una figura sobre un objeto Component, permite asegurar algunas cosas, tales como las siguientes.
  • Las coordenadas son infinitamente finas y se corresponden con los pixeles del dispositivo de salida.
  • Las operaciones con dibujo lineal de una figura operan pintando un camino infinitamente pequeño entre los pixeles, con un pincel del tamaño fijado desde abajo y a la derecha del punto inicial del camino.
  • Las operaciones con relleno operan rellenando el interior del camino infinitamente pequeño anterior.
  • Las operaciones con texto horizontal, pintan la porción ascendente del carácter completamente sobre las coordenadas de la línea base.
El hecho de que el pincel gráfico se sitúe abajo y a la derecha tiene algunas implicaciones que resultan interesantes.
Si se pinta una figura que cubra un rectángulo dado, esa figura ocupará una fila extra de pixeles por la derecha y por abajo, si se compara con una figura rellena con los límites de ese rectángulo. En la figura siguiente, del ejemplo java1507.java, se observa esta circunstancia, ya que se pinta un rectángulo de las mismas dimensiones que el objeto Canvas que lo contiene, y los bordes derecho e inferior del rectángulo se salen fuera de los límites del objeto y no son visibles.
Otra implicación es que si se pinta una línea horizontal a lo largo de la misma coordenada Y como línea base de un texto, esa línea se pintará completamente por debajo del texto, excepto en donde los caracteres tengan parte descendente.
Cuando se pasan coordenadas a los métodos de un objeto Graphics, estas coordenadas están consideradas relativas al origen de traslación del objeto Graphics que se haya hecho antes de la invocación al método.
Un objeto Graphics describe un contexto gráfico. Un contexto gráfico define una zona de recorte, una zona a la que va a afectar; cualquier operación gráfica que se realice modificará solamente los pixeles que se encuentren dentro de los límites de la zona de recorte actual y el componente que fue utilizado para crear el objeto Graphics.
Cuando se pinta o escribe, ese dibujo o escritura se realiza en el color actual, utilizando el modo de dibujo actual y la fuente de caracteres actual.
Hay muchas otras clases, como la clase Rectangle y la clase Polygon, que utilizan como soporte las operaciones que se pueden realizar con la clase Graphics.
Para poder revisar esta clase, quizá una de las mejores formas sea a través de sus múltiples métodos, intentando agruparlos por funcionalidad, que es lo que se ha intentado aquí, aunque si el lector quiere una referencia completa y una descripción de los métodos de esta clase deberá recurrir a la documentación que JavaSoft proporciona sobre el AWT.
Hay que empezar hablando del constructor de la clase Graphics, que no tiene argumentos; aunque Graphics es una clase abstracta, por lo que las aplicaciones no pueden llamar a este constructor directamente. Se puede obtener un objeto de tipo Graphics a partir de otro objeto Graphics llamando al método getGraphics() sobre un componente. También se puede recibir un objeto Graphics como parámetro cuando se van a sobreescribir los métodos paint() o update().

No hay comentarios:

Publicar un comentario