Download Cap4 TAP3501 - WordPress.com

Document related concepts
no text concepts found
Transcript
DuocUC
Tópicos Avanzados de Programación
(TAP3501)
Ariel Alexis Fierro Sáez
[email protected]
Interfaz grafica
• Para el desarrollo de GUI (graphical user
interface) se disponen de dos paquetes:
javax.swing.* y java.awt
Swing
Awt
Soporte nativo para GUIs
Paquete AWT
• Un gran conjunto de componentes de interfaz de
usuario
• Un robusto modelo de manejo de eventos
• Herramientas graficas y de imagen, incluyendo
forma, color y tipo de letra. Manejadores de Layout,
para un manejo de ventanas flexible que no
dependan de una tamaño o resolución especifico.
• Clases de transferencia de datos, para copiar y pegar
a través de el clipboard de la plataforma en donde
ejecutamos nuestra aplicación
Jerarquía AWT
Ventajas y desventajas AWT
Ventajas
• Velocidad, el usar el sistema
nativo como base hace que el
desempeño de los componente sea
mas rápido.
• Portabilidad de applets, casi todos
los navegadores soportan las
clases de AWT así que applets
construidos con AWT puede
ejecutarse sin necesidad del pluin
de java.
• Apariencia: los componentes AWT
se parecen mas al sistema en el
que se están ejecutando.
Desventajas
• Portabilidad. El uso del sistema en el
que se ejecutan los componentes AWT
crea algunas limitaciones. Algunos
componentes pueden no funcionar en
todas las plataformas.
• Los grandes creadores de
componentes se han inclinado por el
desarrollo de componentes Swing y no
AWT, esto hace que el conjunto de
componentes AWT mas pequeño.
• Características. Los componentes
AWT no soportan características como
iconos y tool-tips.
Swing
• Están construidos sobre la tecnología AWT.
• Proveen de apariencia de acuerdo al sistema
donde se ejecuta la aplicación
• Esta completamente implementada en java
• Estos componentes no dependen del sistema
donde se ejecuta para manejar su funcionalidad
Jerarquía swing
Ventajas y desventaja Swing
Ventajas
• Portabilidad. Debido a que los
componentes de swing están hechos
solo con java, estos funcionan en casi
todos las plataformas.
• Comportamiento. Permiten un rango
de comportamiento mas amplio ya
que no están limitados a los sistemas
en los que se ejecutan.
• Características. Soporta el uso de
iconos y de tool-tips
• Soporte. Sun hace un gran esfuerzo
para hacer Swing mas robusto.
• Apariencia. Los componentes de swing
automáticamente pueden tomar la
apariencia de cualquier plataforma .
Desventajas
• Portabilidad de Applets. La mayoría
de los navegadores no incluyen las
clases de Swing ANSI que se debe de
instalar un plugin de java; para que
funcionen los applets con swing
• Desempeño. Los componentes
Swing son generalmente mas lentos
y con mas problemas que AWT.
AWT y Swing
• La estructura básica del AWT se basa en
Componentes y Contenedores.
• Un Contenedor es una clase abstracta derivada de
Component, que representa a cualquier
componente
que
pueda
contener
otros
componentes.
• Estos últimos contienen Componentes posicionados
dentro de la ventana, de forma que los eventos
pueden tratarse tanto en Contenedores como en
Componentes.
AWT y Swing
• El diseño de toda interfaz conlleva:
Definir la estructura de la interfaz
Qué componentes gráficos se van a utilizar, y cómo se van
a relacionar estos componentes)
Definir la disposición (layout) de los componentes
Sirven para organizar los componentes contenidos en los
mismos.
Definir el comportamiento de la interfaz: gestión de
eventos
Algunos componentes son controles: permiten reaccionar
ante eventos del usuario. El comportamiento se especifica
programando las respuestas a dichos eventos.
Componente GUI básica
• Todos los componentes heredan de la clase
javax.swing.JComponent.
• JFrame es la clase base en que se construye
cualquier aplicación de escritorio en java.
• JDialog corresponde a todos las ventanas
desplegables.
• Clases utilizadas: import javax.swing.*; y import
java.awt.*;
Layouts
Layouts es la forma en la que se distribuyen diferentes
componentes gráficos en un contenedor.
• FlowLayout: se agrega directamente con
add(componente). Los componentes se agregan de
izquierda a derecha de arriba hacia abajo, uno después
de otro en el mismo orden en el que se agregaron.
• BorderLayout: se agrega un componentes con
add(componente,BorderLAyout.CENTER), este segundo
argumento puede ser NORTH,SOUTH,EAST,WEST Y
CENTER.
Layouts
• CardLayout: Se agrega la cantidad de
componentes que quiera con
add(componente,String llave); el segundo
argumento puede ser cualquier String. Solo es
visible un componente a la vez. Para mostrar el
componente es con show(componente,
String.valueOf(llave));
• GridLayout: acomoda los componentes en una
matriz dentro del ventana.
• GridBagLayout: al igual que el gridlayout
define una matriz, pero que a diferencia de el
cada celda puede tener un tamaño determinado.
Manejo de Eventos
• Cualquier sistema operativo que soporta GUI
debe monitorear constantemente el ambiente de
que suceda algún evento, como un click del
mouse o al presionar una tecla.
• El OS. Reporta los eventos a el programa que
esta corriendo
Manejo de eventos
• Un objeto que escucha es una instancia de la clase que
implementa una interface especial llamada listener
interface
• La fuente de los eventos envía objetos de eventos a todos
los objetos que escuchan cuando ocurre un evento.
• El objeto que escucha utilizara entonces la información
en el objeto evento para reaccionar al evento.
Referencias
• API Java
http://docs.oracle.com/javase/1.4.2/docs/api/index.html
• Layout Managers, Martín Pérez Mariñán
http://es.scribd.com/doc/17800593/Layouts-JAVA
• Enabling Java Web Start in the NetBeans IDE
http://netbeans.org/kb/docs/java/javase-jws.html
• How to Use SpringLayout
http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html
• Swing, la solución actual de Java para crear GUIs, Marcela
Calderón/Emilio Davis
http://www.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.
html