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 afierrosaez@gmail.com 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