Dibujo en java

Solo disponible en BuenasTareas
  • Páginas : 6 (1365 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de diciembre de 2011
Leer documento completo
Vista previa del texto


Para este ejercicio cree un Jframe con un panel y varios botón con su respectivo evento.





Todos los componentes poseen lo que se denomina el contexto grafico. La forma de un componente ya sea un botón, tabla,Jlist y demás es definida por un dibujo que se hace sobre dicho contexto grafico. Es posible acceder al contexto grafico de los componentes y dibujar sobre ellos líneas,elipses, rectángulos y polígonos en general.





Para acceder al contexto grafico se usa el método getGraphics que poseen todos los componentes. Por ejemplo, si se quisiera dibujar sobre un botón…
 Graphics g=Boton.getGraphics().



El objeto g es el contexto grafico del botón llamado Boton. Cualquier acción de dibujo se hará sobre dicho componente.



Dibujar un rectangulo
drawRect(x,y,ancho,alto)

x,y alto

 drawOval(x,y,ancho,alto)

ancho x,y alto ancho



Estos métodos dibujan una
Figura si color de fondo.



drawLine(x1,x2,y1,y2)

X1,y1

X2,y2



setColor(Color): método para establecer el color con el que se dibujan las figuras. Antes de dibujar una figura de un color deseado es necesario establecer dicho color.
Ejemplo:g.setColor(Color.RED)




fillRect(x,y,ancho,alto): método para dibujar un rectángulo lleno de un color. fillOval(x,y,ancho,alto): método para dibujar un ovalo relleno de un color.
Para establecer el color de relleno antes de dibujar la figura se debe establecer dicho color con setColor.





Supóngase un JPanel como lienzo de dibujo. Coloque este fragmento de código en el evento de unbotón.

1 2 3

4

5

1.
2. 3. 4. 5.

se extrae el contexto grafico del panel. Las coordenadas de las figuras son relativas a este panel. se dibuja un rectángulo sin relleno y con color de línea negro( no se ha puesto color) Se coloca el color en rojo y se dibuja un ovalo sin relleno Se coloca el color en verde y se dibuja un rectángulo relleno. Se coloca el color en azul y se dibuja unovalo relleno. Luego en la misma coordenada(x,y) y con el mismo tamaño(ancho,alto) se cambia el color a rojo y se dibuja un ovalo sin relleno. Esta es la manera de dibujar una figura con borde de un color y relleno de otro. El ovalo rojo sin relleno queda encima del azul lleno.

 


Que pasa si minimizo y maximizo la ventana? Esto es debido a que los dibujos no se almacenan en el componente.Todos los componentes tienen un método llamado paint donde se define gráficamente como lucen al usuario. Solo el código de dibujo que se haga allí persiste en el tiempo. Este método se llama cada vez que la ventana cambie, ya sea por moverse o esconderse, y como en dicho metodo no esta el código que hizo el dibujo, este no se hace.



En el Jframe defina el metodo paint.

public voidpaint(Graphics g) { super. paint(g);

//…….aquí va el código de dibujo
}
 

Este metodo recibe como parámetro el graphics del Jframe. Si se dibujara sobre el Jframe, este seria el graphics a usar. Traslade el código que puso en el botón aquí después del super y vea que pasa cuando minimiza y maximiza.





Entonces si los dibujos que se hagan fuera del paint no persisten en el tiempo,como hacer que esto ocurra?. La respuesta a esto es usar la clase BufferedImage. Esta clase provee un Graphics Virtual el cual luego se puede dibujar en el graphics del componente en cuestión en el método paint.



A continuación se muestra como crear un BufferedImage. El constructor de esta clase recibe como parámetro el tamaño y el tipo de Declarar el objeto color que manejara.
Seinstancia y se le asigna el tamaño del panel donde se están haciendo los dibujos. Además del tipo de color.

BufferedImage.Type_INT_RGB indica que se los dibujos y las imágenes serán en colores RGB. También podría configurarse para imágenes en blanco y negro.

1 2 3

1.

2.

3.

Graphics2D es una clase muy similar a Graphics, posee los mismos métodos explicados de Graphics además de...
tracking img