4.4.3 Rectangle2D

 

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