martes, 24 de julio de 2012

Java 2D


Java 2D

Java2D es una de las API con el que se puede abarcar temas muy importantes como generar figuras geométricas, imágenes y dibujo de texto.
A medida que se van introduciendo nuevas clases de la API, éstas se van hilvanando entre sí para proporcionar al programador un mayor control sobre el aspecto de los lienzos que quiera dibujar.

CLASES E INTERFACES


 CLASE GRAPHICS 2D
java.awt.Graphics2D es una clase que extiende a java.awt.Graphics y tiene atributos de estado que conforman el contexto y que pueden modificarse son los siguientes puntos:
  •          Variar la anchura del pincel o líneas.
  •          Definir colores o patrones de relleno para las figuras.
  •          Trasladar, rotar, reducir o ampliar objetos cuando son generados.
  •          Especificar la forma en que se componen las figuras superpuestas
Atributos de pincel
  •          draw(),
  •          drawArc(),
  •          drawLine(),
  •          drawOval(),
  •          drawPolygon(),
  •          drawPolyline(),
  •          drawRect() 
  •          drawRoundRect().
Transformaciones
Graphics2D proporciona varios métodos que permiten modificar la transformación por defecto en su contexto. Lo más sencillo es llamar a uno de los métodos de transformación de Graphics2D como
  •          rotate()
  •          scale()
  •          shear() 
  •          translate()

FIGURAS GEOMÉTRICAS EN JAVA 2D

Con el paquete java.awt.geom proporciona varias clases que definen objetos geométricos simples tales como puntos, líneas, curvas y rectángulos.
  •          Rectangle2D
  •          Line2D
  •          Point2D 
  •          Ellipse2D
  •          Arc2D


Ejemplo.

public void paint (Graphics g) { Graphics2D g2 = (Graphics2D)g;
Rectangle2D r = new Rectangle2D.Float(50.0f, 50.0f,110.0f, 200.0f); RoundRectangle2D rr = new RoundRectangle2D.Float(60.0f, 60.0f, 90.0f, 180.0f, 25.0f, 25.0f); Ellipse2D e = new Ellipse2D.Float(100.0f, 80.0f, 10.0f, 10.0f);
g2.draw(r);
g2.draw(rr);
g2.draw(e);
}


Gráfico generado por el código.

















TRATAMIENTO DE TEXTO CON JAVA2D


Obtener fuentes

Dibujar una única línea de texto
Una vez creada la fuente, la forma más fácil de dibujar una línea de texto en un Graphics2D es utilizar su método drawString() habiendo establecido previamente la fuente actual en el contexto.


Manejo de la clase TextAttribute.

La clase TextAttribute sirve para definir atributos de texto que luego se pueden aplicar a toda una cadena del tipo AttributedString, o bien a sólo una porción de ella.

SINTAXIS: TextAttribute.Atributo 

IMÁGENES CON JAVA2D
Cargar una imagen
El método usado para cargar una imagen desde una URL o desde un fichero es el método getImage() del paquete java.awt.Toolkit. Para poder usar esta función hay que obtener antes el objeto Toolkit por defecto invocando a la función estática Toolkit.getDefaultToolkit().
Realmente la sentencia getImage() no carga inmediatamente la imagen sino que la mete en una cola asociada al Toolkit por defecto; cuando el Toolkit finaliza la carga vuelve a invocar al repintado del panel. En otras palabras, la función paint() es invocada varias veces hasta que la imagen se acaba de cargar.

Cargar una imagen como BufferedImage
JPEG pueden cargarse como cualesquiera otras produciendo un objeto de tipo Image,
Ciertas operaciones de transformación que requieren un objeto de tipo BufferedImage
La imagen JPEG se puede cargar mediante el mencionado códec. Para cargar una imagen es necesario un decodificador.

 Crear imágenes
La forma mas sencilla es el metodo createImage() de la clase Toolkit. En la API Java2D ese objeto devuelto puede convertirse sin ningún problema en un objeto BufferedImage con un simple casting (forzado de tipo).



Mostrar una imagen
Se utilizan métodos drawImage() de las clases Graphics y Graphics2D
Cuando se invoca al método drawImage() para generar una imagen, se dibujan todos los datos de la imagen que están disponibles en ese preciso instante y se retorna inmediatamente.

EL COLOR EN JAVA2D
Cómo crear un color
La clase java.awt.Color representa un color en el espacio de colores RGB por defecto. 


El parámetro Alfa indica si se quiere o no introducir la transparencia en el color
Ejemplos: 
Color.blue =  new Color(0,0,255)
Color.green = new Color(0,255,0)
Color White = new Color(255,255,255)
Color.darkGray =new Color(64,64,64)

INTERFAZ  HMI

Ejemplo de interfaz HMI
Interfaz de usuario HMI

La sigla HMI es la abreviación en Ingles de Interfaz Hombre Maquina.
La interfaz de usuario es el medio con que el usuario puede comunicarse con una máquina, un equipo o una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Normalmente suelen ser fáciles de entender y fáciles de accionar.
Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, teclado, ratón, los beeps y algunos otros sonidos que la computadora hace, y en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la computadora.
Funciones principales
Sus principales funciones son las siguientes:
     Puesta en marcha y apagado.
     Control de las funciones manipulables del equipo.
     Manipulación de archivos y directorios.
     Herramientas de desarrollo de aplicaciones.
     Comunicación con otros sistemas.
     Información de estado.
     Configuración de la propia interfaz y entorno.
     Intercambio de datos entre aplicaciones.
     Control de acceso.
     Sistema de ayuda interactivo.


Ejemplo de reloj con interfaz HMI











Que es API ?


Que es API ?

El API Java es una Interfaz de Programación de Aplicaciones (API: por sus siglas en inglés) provista por los creadores del lenguaje Java, y que da a los programadores los medios para desarrollar aplicaciones Java.