Vamos a ver una nueva clase, la clase Graphics.
La clase Graphics ha estado casi desde el principio de Java,
sin embargo, con el paso del tiempo está clase se ha quedado como anticuada ya
que no permite hacer ciertas cosas, por ejemplo, modificar el grosor del trazo,
rotar las figuras geométricas, etc. Con el tiempo añadieron en la API de Java la librería Java 2D
compuesta por un montón de clases que permiten dibujar figuras geométricas con
operaciones más complejas, modificar el trazo, rotar las figuras, etc., en esta
biblioteca a las figuras geométricas se les da un enfoque orientado a la
programación orientado a objetos, en esta biblioteca tenemos clases Rectangle2D permite
crear rectángulos pero para ello hay que instanciar esta clase y después
utilizar los métodos correspondientes.
Estas clases que están contenidas todas ellas
en la API de Java sería conveniente
echar un vistazo a cada una de ellas o las más usadas para saber los métodos
que tiene, como se utilizan, etc.,
Por ejemplo, la clase Rectangle2D está
dentro del paquete java.awt.geom, es una clase abstracta. El
constructor es de tipo protected.
Lo vemos con la práctica utilizando el
ejemplo con el que estamos trabajando eliminamos todos los métodos de la clase
LaminaConDibujos
class LaminaConDibujos
extends JPanel {
public void
paintComponent(Graphics g) {
super.paintComponent(g);
}
}
Para empezar a dibujar un rectángulo es
instanciar la clase Graphics2D le damos un nombre a la
instancia g2 y eso es igual a la refundición Graphics2D.
class LaminaConDibujos
extends JPanel {
public void
paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D
g2=(Graphics2D) g;
}
}
Lo que hemos hecho ha sido una refundición
hemos convertido nuestro objeto Graphics en un objeto de Graphics2D.
Tenemos que instanciar la clase Rectangle2D, sin embargo, al ser
una clase abstracta no se puede instanciar, pero tenemos la clase Rectangle2D.Double que
no es abstracta y sí que se puede instanciar
class LaminaConDibujos
extends JPanel {
public void
paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D
g2=(Graphics2D) g;
Rectangle2D rectangulo=new Rectangle2D.Double(100, 100, 200, 150);
}
}
Al instanciar hemos utilizado uno de los
constructores que vienen con Rectangle2D.Double si vais a la API de Java hemos utilizado el
segundo.
Ahora nos queda dibujar el rectángulo lo
hacemos con draw
g2.draw(rectangulo);
Probamos:
4.4.2 Línea << >> 4.4.4 Ellipsed2D
No hay comentarios:
Publicar un comentario