PIZiadas grafica

PIZiadas grafica

Il mio mondo è dentro.

Programmazione grafica: Oggetto Graphics e interfacce orientate [JAVA]

ejemplo_interfacesEn los pasos previos que hemos visto, aprendimos a installare l'ambiente di sviluppo (IDE) de Eclipse e creare un nuovo progetto, posteriormente se ha añadido un programa al proyecto Eclipse y hemos comenzado a estructurar la aplicación iniciando la construcción de los elementos de la librería gráfica.

El siguiente paso es definir un interfaccia que será una clase JAVA que permita definir la acción de dibujar los gráficos y asignársela a los objetos, de forma que la clase encargada de pintarlos los reconozca.

A interfaz in Java es una colección de métodos abstractos y propiedades. En ellas se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces las que describan la logica del comportamiento de los métodos.(Gli)

Declaración del interface

A “Interfaccia” se declara de forma similar a una “Classe” nel linguaggio Java, se almacena en un fichero con extensión “.Giava” y su nombre debe coincidir con el del interface.

On “IDE” añadiremos un interface al proyecto de forma similar a la que hemos visto desde el menú:

File->Aggiungere->Interfaccia

o bien lo podemos hacer mediante el menú gráfico como se aprecia en la figura

addInterface

En la ventana que aparecerá para definir el interface deberemos indicar el nombre y el paquete en el que queremos que se guarde.

Usaremos el paquete “grafico” donde estamos generando la librería y lo denominaremos “SimpleDrawable” ya que será el interface responsable de definir la propiedad de ser pintables (dibujables) los objetos que lo implementen.

add_interface_window

Al implementar el interface únicamente definiremos un método o función:

void paint(Graphics g);

Esta función permitirá que se puedan representar los objetos que la implementen,

interface_simpleDrawable_text

Allora crearemos un objeto gráfico que implementará este “interfaccia”, lo que nos permitirá entender el funcionamiento básico de esta metodología orientada a objetos y basada eninterfaces”.
El objeto a implementar será un simple punto en dos dimensiones, la clase “Point2D”. Lo añadiremos al paquete “grafico” como el resto de elementos de nuestra librería que, successivamente, podremos reutilizar construyendo objetos más complejos.
interface_simpleDrawable
El objeto declarará un par de variables encargadas de almacenar las coordenadas del punto que define. La variabile “x” mantendrá la ordenada y la “e” la abcisa del punto.
int x=0;
int y=0;
Dispondremos de dos constructores de la clase, uno que no admite parámetros y otro que nos servirá para iniciar el objeto con unas coordenadas concretas.
pubblico Point2D()
pubblico Point2D(int x1, int y1)
La clase implementará elinterdace SimpleDrawable”. Esto obligará a implementar el método “dipingere” que se declara en el “interfaccia” y que servirá para que el objeto se represente gráficamente en pantalla.
Punto2D
Para que la clase responsable de almacenar y pintar los objetos cumpla con sus requisitos necesitamos definir una forma de almacenar los objetos gráficos.
Una solución consiste en definir unVector” JAVA. Esta clase se encuentra en un paquete de los distribuidos en el core de la aplicación, y representa una memoria dinámica de almacenamiento.
Añadiremos una función denominadaaddElementque será la responsable de añadir elementos a la base de datos. Esta clase debe ser pública para permitir el acceso a la misma desde otras clases del programa.
Deberemos implementar la lógica que pinta los objetos en el método “dipingere”. Esta función irá analizando cada uno de los elementos que se encuentran en la base de datos (“Vectorde almacenamiento) y comprobará previamente si derivan del interface “SimpleDrawable” para saber si son representables. En caso de serlo, forzará la conversión de tipos y llamará a su función “dipingere”.
Para comprobar si el objeto implementa el “interfaccia” utilizaremos la comprobación con la palabra reservadainstanceof
pizarra_bd
Se puede implementar esta lógica de maneras diferentes. En el primer caso se ha integrado una estructura de tipofor-nextpara extraer los elementos delVector”. En el segundo caso se ha presentado una alternativa con una orientación a objetos más genérica, mediante el uso de unEnumeration“.
Se recomienda consultar los manuales básicos de programación en JAVA para analizar con detalle estas alternativas.
paint_enum
La estructura del proyecto habrá cambiado con la incorporación tanto del “interfaccia” como de la clase “Point2D”. La biblioteca gráfica empieza a completar su estructura básica de funcionamiento.
Estructurainterfaces
Sólo nos queda modificar el programa principal de ejemplo para añadir algunos objetos a la base de datos que hemos definido en la clase “Lavagna”.
Para añadir elementos hemos definido una nueva función llamada “iniciarElementos()” que creará tres nuevos puntos con el operadornuovo” e, mediante la llamada a la funciónaddElement” Oggetto “lavagna” , los incorporará a nuestra clase gestora de objetos.
iniciarElementos
El resultado de la ejecución del programa es el que se muestra en la imagen que se adjunta..

ejemplo_interfaces2

Los puntos que hemos almacenado en la base de datos se representan en las coordenadas con las que los hemos inicializado.
En caso de iniciar los objetos con el constructor sin parámetros, se representarían en las coordenadas (0,0) superpuestos unos sobre otros, ya que tendrían los valores por defecto.
El siguiente paso en nuestra estructura será ver cómo incorporamos la interacción al programa. Primero definiremos un motore di animazione para gestionar elementos que interactuen o se muevan solos, y posteriormente indicaremos cómo manipular los objetos con el ratón.
JAVA

Corso JAVA