Introd A Java

Páginas: 25 (6132 palabras) Publicado: 6 de mayo de 2015
La clase Graphics
Casi todas las componentes y contenedores de Swing tienen un método paint(g) asociado que sirve para dibujarlos en pantalla. Java invoca este método automáticamente cuando tiene que mostrar, de forma estándar, la componente o contenedor en cuestión (esto es, sus bordes, su título, si lo tiene, etc.)
El método paint(g) se redefine cuando se quiere que estos elementos tengan unaspecto particular, por ejemplo, cuando se quiere dibujar algo específico sobre ellos.
El método paint(g) es de la forma

public void paint(Graphics g) {
...
}

Donde g es un objeto de la clase abstracta Graphics. Todo contenedor o componente que se pueda dibujar en pantalla tiene asociado un objeto g de esta clase, con la información sobre el área de la pantalla que el 
contenedor o lacomponente cubre. Además, el objeto g dispone de métodos para hacer gráficos (dibujar círculos, rectángulos, líneas, etc.)

La clase Graphics se importa de awt:

import java.awt.*;

Cuando el método paint(g) se ejecuta es porque ha sido invocado por otros métodos, nunca invocado por
nosotros, y el parámetro que usa corresponde a un objeto de la clase Graphics asociado al contenedor o
componente que estemosmanejando.
Cuando se redefine el método paint(g), siempre se comienza con una invocación super.paint(g) al método de la superclase, asegurando así que se dibuja la parte estándar del contenedor o componente que estemos manejando.

Por ejemplo, vamos a dibujar una cara en un marco. Un marco es un elemento de la clase JFrame y para dibujar en él procedemos así:


public void paint (Graphics g){
     super.paint(g);
      
      //Dibujo el contorno de la cara
      g.setColor(Color.BLACK);
      g.fillOval(105, 70, 100, 100);
      
      //Dibujo de los ojos
      g.setColor(Color.GREEN);
      g.fillOval(125, 100, 10, 10);
      g.fillOval(175, 100, 10, 10);
      
      //Dibujo de la nariz
      g.drawLine(150, 100, 150, 130);
      
      //Dibujo de la boca
      g.drawArc(118, 120, 75,30, 180, 180);
    }

Para entender lo que ha hecho el método anterior hay que saber que:
El sistema de coordenadas de un contenedor tiene su origen en su esquina superior izquierda.
Las abscisas se incrementan hacia la derecha y las ordenadas hacia abajo.
Cada punto es un píxel.
En general, el dibujo de una figura (rectángulo, elipse, rectángulo redondo, etc.) se realiza dando las coordenadas dela esquina superior izquierda de un rectángulo imaginario que la contiene.
Algunos métodos de la clase Graphics para dibujar figuras son:
drawLine(x1,y1,x2,y2): dibuja una línea recta desde el punto (x1,y1) al punto (x2,y2)
fillRect(x,y,ancho,alto): rellena el rectángulo que tiene su esquina superior izquierda en (x,y) y el ancho y largo dados
drawOval(x,y,ancho,alto): dibuja una elipse contenidaen un rectángulo imaginario cuya esquina superior izquierda está en (x,y) y tiene el ancho y largo dados
 fillOval(x,y,ancho,alto): rellena la elipse especificada pordrawOval(x,y,ancho,largo)
drawArc(x,y,ancho,alto, inicioAngulo,barridoAngulo): dibuja parte de una elipse dentro de un rectángulo imaginario cuya esquina superior izquierda está en (x,y), tiene el largo y ancho dados, empieza adibujar en el ángulo inicioAngulo y hace un barrido de barridoAngulo
setColor(Color.red): cambia la “tinta” del objeto g y la pone de color rojo. La clase Color se importa de awt:
                                        import java.awt.*;
Dibujar sobre paneles
Cuando se actualiza un componente, se borra su aspecto actual y seinvoca paint(g). El borrado previo puede producir parpadeo (flickering) ,porlo que a veces el método paint(g) evita hacerlo.
Sin embargo, la actualización puede necesitar hacer el borrado previo(para actualizar el fondo del componente, por ejemplo). En estos casos se invoca el método paintComponent(g) de la clase JComponent, que permite hacer un barrido previo, pero usando la técnica del doble buffer para eliminar el parpadeo.
En casos como los anteriores lo que se hace...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Introd
  • Introd
  • introd.
  • Introd
  • INTROD
  • Introd
  • introd
  • INTROD

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS