7 y 8. interfaz grafica en java

9
TALLER DE PROGRACION CONCURRENTE Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI CAPITULO VII DISEÑA E IMPLEMENTA APLICACIONES PARA EL TRATAMIENTO DE FIGURAS, IMÁGENES Y TEXTOS EN DOS DIMENSIONES (JAVA 2D) INTERFACE DE USUARIO La interface de usuario es la parte del programa que permite a éste interactuar con el usuario. Las interfaces de usuario pueden adoptar muchas formas, que van desde la simple línea de comandos hasta las interfaces gráficas que proporcionan las aplicaciones más modernas. La interface de usuario es el aspecto más importante de cualquier aplicación. Una aplicación sin un interfaz fácil, impide que los usuarios saquen el máximo rendimiento del programa. Java proporciona los elementos básicos para construir decentes interfaces de usuario a través del AWT. Al nivel más bajo, el sistema operativo transmite información desde el ratón y el teclado como dispositivos de entrada al programa. El AWT fue diseñado pensando en que el programador no tuviese que preocuparse de detalles como controlar el movimiento del ratón o leer el teclado, ni tampoco atender a detalles como la escritura en pantalla. El AWT constituye una librería de clases orientada a objeto para cubrir estos recursos y servicios de bajo nivel. Debido a que el lenguaje de programación Java es independiente de la plataforma en que se ejecuten sus aplicaciones, el AWT también es independiente de la plataforma en que se ejecute. El AWT proporciona un conjunto de herramientas para la construcción de interfaces gráficas que tienen una apariencia y se comportan de forma semejante en todas las plataformas en que se ejecute. Los elementos de interface proporcionados por el AWT están implementados utilizando toolkits nativos de las plataformas, preservando una apariencia semejante a todas las aplicaciones que se creen para esa plataforma. Este es un punto fuerte del AWT, pero también tiene la desventaja de que una interface gráfica diseñada para una plataforma, puede no visualizarse correctamente en otra diferente.

description

clase s

Transcript of 7 y 8. interfaz grafica en java

Page 1: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

CAPITULO

VII

DISEÑA E IMPLEMENTA APLICACIONES PARA EL TRATAMIENTO DE FIGURAS,

IMÁGENES Y TEXTOS EN DOS DIMENSIONES (JAVA 2D)

INTERFACE DE USUARIO

La interface de usuario es la parte del programa que permite a éste interactuar con el usuario. Las interfaces

de usuario pueden adoptar muchas formas, que van desde la simple línea de comandos hasta las interfaces

gráficas que proporcionan las aplicaciones más modernas.

La interface de usuario es el aspecto más importante de cualquier aplicación. Una aplicación sin un interfaz

fácil, impide que los usuarios saquen el máximo rendimiento del programa. Java proporciona los elementos

básicos para construir decentes interfaces de usuario a través del AWT.

Al nivel más bajo, el sistema operativo transmite información desde el ratón y el teclado como dispositivos de

entrada al programa. El AWT fue diseñado pensando en que el programador no tuviese que preocuparse de

detalles como controlar el movimiento del ratón o leer el teclado, ni tampoco atender a detalles como la

escritura en pantalla. El AWT constituye una librería de clases orientada a objeto para cubrir estos recursos y

servicios de bajo nivel.

Debido a que el lenguaje de programación Java es independiente de la plataforma en que se ejecuten sus

aplicaciones, el AWT también es independiente de la plataforma en que se ejecute. El AWT proporciona un

conjunto de herramientas para la construcción de interfaces gráficas que tienen una apariencia y se comportan

de forma semejante en todas las plataformas en que se ejecute. Los elementos de interface proporcionados por

el AWT están implementados utilizando toolkits nativos de las plataformas, preservando una apariencia

semejante a todas las aplicaciones que se creen para esa plataforma. Este es un punto fuerte del AWT, pero

también tiene la desventaja de que una interface gráfica diseñada para una plataforma, puede no visualizarse

correctamente en otra diferente.

Page 2: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

7.1. 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()

Page 3: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

7.2. 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

import java.awt.Shape;

import java.awt.geom.Ellipse2D;

import java.awt.geom.RoundRectangle2D;

import javafx.geometry.Rectangle2D;

public class prueba {

public void paint(Graphics2D g) {

Graphics2D g2 = (Graphics2D) g;

Rectangle2D r = new Rectangle2D(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);

Page 4: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

g2.draw((Shape) r);

g2.draw(rr);

g2.draw(e);

}

}

7.3. 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.

Page 5: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

SINTAXIS: TextAttribute.Atributo

7.4. 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

Page 6: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

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.

7.5. 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.

Page 7: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

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)

Page 8: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

CAPITULO VIII

DISEÑA E IMPLEMENTA INTERFACES VISUALES PARA LAS APLICACIONES JAVA.

8.1 CONTENEDORES

Como vimos en entradas anteriores, un contenedor es el tapiz donde pintaremos nuestros componentes

gráficos, existen contenedores principales, entre estos se encuentran JFrame y JDialog pero también existen

otros contendedores incluidos dentro de los mencionados...

JFrame – Es la Ventana de aplicación, el contenedor principal

JDialog – Una ventana de tipo Ventana de diálogo, tambien puede ser un contenedor principal.

JPanel – Permite la creación de paneles independientes donde se almacenan otros componentes.

JScrollPane – permite la vinculación de barras de desplazamiento en un contenedor.

JSplitPane – permite la creación de un contenedor dividido en 2 secciones.

JTabbedPane – Permite la creación de pestañas, cada pestaña representa un contenedor

independiente.

JDesktopPane – Permite crear ventanas dentro de una ventana principal

JToolBar – Permite introducir una Barra de herramientas

8.2 COMPONENTES ATÓMICOS

Los componentes atómicos son los elementos que no pueden almacenar otros objetos o componentes

graficos, por ejemplo, un JPanel no es Atómico, ya que en el podemos almacenar JButtons, JTextField entre

otros...

JLabel – Permite Vincular Etiquetas, tanto de texto como de imagenes

JButton – Permite vincular Botones simples.

JCheckBox – Son Casilla de verificación, ideal para selección múltiples.

JRadioButton – Permite presentar opciones de selección similares a las checkbox, solo que el

enfoque de estas es de única selección.

JToggleButton – Botón que al oprimirlo se quedará presionado hasta que se ejecute otro evento.

JComboBox – Permite mostrar una lista de elementos como un combo de selección.

JScrollBar – Permite mostrar una barra de desplazamiento, regularmente usada en Areas de texto

o paneles donde el contenido es mayor que el tamaño del componente.

JSeparator – Permite separar opciones, es una barra simple.

JSlider - Permite vincular un Deslizador en nuestra ventana.

JSpinner – permite vincular una caja de texto con botones integrados para seleccionar algún

valor.

JProgressBar – Establece una barra de progreso.

Page 9: 7 y 8.  interfaz grafica en java

TALLER DE PROGRACION CONCURRENTE

Docente del curso: BACH. ING. RAUL J. POMASONCCO POMACANCHARI

8.3 COMPONENTES DE TEXTO.

Son todos aquellos que nos permiten procesar cadenas de texto, sea como entrada o salida de

información.

JTextField – Permite introducir un campo de texto simple.

JFormattedTextField – Permite introducir un campo de texto con formato, (si definimos que

solo recibe números no permitirá letras...)

JPasswordField – Campo de texto que oculta los caracteres ingresados.

JTextArea – Permite vincular un área de texto donde el usuario ingresara información o

simplemente para presentar cadenas de texto.

JEditorPane –Permite vincular un área de texto con propiedades de formato.

JTextPane – Similar al anterior, permitiendo otras opciones de formato, colores, iconos entre

otros.

8.4 COMPONENTES DE MENUS.

Estos componentes permiten vincular opciones de menú en nuestras ventanas, tipo menú principal,

como por ejemplo el conocido Inicio, Archivo, Edición etc..

JMenuBar – Permite vincular una barra de menús.

JMenu– Permite vincular botones o enlaces que al ser pulsados despliegan un menú principal.

JMenuItem – Botón u opción que se encuentra en un menú.

JCheckBoxMenuItem– Elemento del menú como opciones de checkbox.

JRadioButtonMenuItem– Elemento del menú como botón de selección.

JPopupMenu– Opciones de menú emergentes.

8.5 COMPONENTES COMPLEJOS Estos son componentes un poco mas avanzados, cumplen con funciones mas enfocadas a procesos

especificos y complejos, como por ejemplo obtener gran cantidad de información de una base de datos,

trabajo con nodos, colores entre otros. JTable – Permite vincular una tabla de datos con sus respectivas filas y columnas.

JTree - Carga un árbol donde se establece cierta jerarquía visual, tipo directorio.

JList – Permite cargar una lista de elementos, dependiendo de las propiedades puede tenerse una

lista de selección múltiple.

JFileChooser – Es un componente que permite la búsqueda y selección de ficheros entre otras.

JColorChooser – Componente que permite cargar un panel selector de color

JOptionPane – No es algo complejo sino mas un componente independiente que permite mostrar

un cuadro de diálogo personalizable.

FUENES:

http://elvex.ugr.es/decsai/java/pdf/D1-swing.pdf

http://jugandoconjava.co/tutoriales/jFrames/soundClip/soundClip.html

http://proton.ucting.udg.mx/tutorial/java/Cap4/marco.html