Indice Interfaz Gráfica de Usuario (GUI) Swing Unidad: 2 Laboratorio de Programación Eclipse Visual Editor Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Generalidades Conceptos y caracteristicas Diferencias: pros y contras Ejemplo Conceptos Características Instalación Ejemplo GUI Generalidades GUI AWT (Abstract Windows Toolkit). Java 2: JFC (Java Foundation Classes). AWT. Swing. Aspecto configurable (Pluggable Look and Feel). Interfaz de accesibilidad. API para dibujo 2D. Soporte drag and drop. Laboratorio de Programacion 2 Swing: conceptos… Es un paquete Java para la generación de la GUI en aplicaciones reales de gran tamaño Complementa y amplia el modelo de componentes y eventos de AWT, basándose en éste Proveen soporte para implementar interfaces de usuario gráficas con look and feel (las componentes Swing pueden conservar su apariencia en plataformas diferentes). El termino Look and Feel se refiere a la apariencia en pantalla y funcionamiento, que van a tener los Componentes Swing GUI Laboratorio de Programacion Java incorpora su propio Look&Feel por defecto, cuyo nombre es Metal, y que se muestra a continuación. Diferencias entre Swing y AWT. AWT. 4 GUI Soportado por JDK 1.0 y 1.1. Utiliza código nativo de la plataforma en la que se ejecuta el programa. Resta compatibilidad: no todos los componentes GUI de todas las plataformas se comportan de la misma forma. Swing. Laboratorio de Programacion 3 Swing & AWT: diferencias GUI 1 Swing: conceptos JDK 1.0 introdujo la creación de interfaces gráficas de usuario (GUI, Graphics User Interfaces). Laboratorio de Programacion Soportado por JDK 1.2. No utiliza código nativo. Todos los componentes se comportan igual en todas las plataformas. Aspecto distinto según la plataforma. Conjunto de componentes más extenso y con más características. Precisa de algunas clases de AWT. Laboratorio de Programacion 5 1 Swing: pros y contras PROS AWT y Swing: equivalencias CONTRAS Portabilidad. Debido a que los componentes de swing estan hechos solo con java, estos funcionan en casi todos las plataformas Comportamiento. Permiten un rango de comportamiento mas amplio ya que no estan limitados a los sistemas en los que se ejecutan. Caracteristicas. Soporta el uso de iconos y de tool-tips Soporte. Sun hace un gran esfuerzo para hacer Swing mas robusto Componentes equivalentes en AWT y swing Portabilidad de Applets. La mayoria 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. Apariencia. Los componentes de swing automáticamente pueden tomar la apariencia de cualquier plataforma . GUI Laboratorio de Programacion Applet JApplet Button JButton Canvas JPanel Checkbox JCheckBox o JRadioButton Choice JComboBox Component JComponent Frame JFrame Label JLabel List JList Panel JPanel TextArea JTextArea TextField JTextField Window 6 Jerarquías de Swing Laboratorio de Programacion 8 Componentes Swing & AWT Laboratorio de Programacion 7 Componentes Swing GUI JWindow GUI Swing contiene alrededor de 250 clases. Para distinguir las clases que son componentes de interfaz de usuario de aquellas que son de soporte, los nombres de las componentes Swing comienzan con J. Algunos de los paquetes que componen Swing son: Javax.swing Componentes Swing Javax.swing.border Bordes para componentes Swing Javax.swing.event Clases de eventos e interfaces listener Javax.swing.table Clases de soporte para JTable Javax.swing.tree Clases de soporte para JTree GUI Laboratorio de Programacion 9 Aplicaciones GUI con Swing Swing se construyó por encima del AWT. Usa la infraestructura provista por el AWT: objetos gráficos, colores, fonts, layout managers, etc. Todas las componentes Swing son subclase de java.awt.Container (es lightweight), que a su vez es subclase de java.awt.Component. Swing NO usa las componentes de GUI del AWT, excepto Frame, Window y Dialog, que son las superclases de las componentes Swing, Jframe, JWindow y Jdialog. Para crear una aplicación con Swing se debe: Crear un JFrame Llenarlo de components según los requerimientos de la aplicación Mostrar el JFrame en pantalla invocando el método setVisible(true) Ejemplo public static void main(String[] args) { JFrame frame = new JFrame(); frame.setVisible(true); } GUI Laboratorio de Programacion 10 GUI Laboratorio de Programacion 11 2 Aplicaciones GUI con Swing… Aplicaciones GUI con Swing… Se acostumbra (pero no es obligatorio) declarar una subclase de JFrame y en el constructor llenar el Frame de componentes. Ubicación de componentes en un Frame (Layout) La clase JPanel es un contenedor de objetos que pueden ser desplegados Un JFrame tiene un panel principal que se obtiene invocando getContentPane() public class FrameAlumnos extends JFrame { JTextField nombre; JTextField fechaNac; FrameAlumnos() { JPanel contentPane = (JPanel) getContentPane(); nombre = new JTextField(); contentPane.add(nombre); FechaNac = new JtextField(); contentPane.add(fechaNac); } JFrame frame = new JFrame(); JPanel contentPane = (JPanel) frame.getContentPane(); . . . Un panel puede contener componentes finales (JLabel, JTextField, etc.) u otros paneles (Jpanel) Esto permite acomodar los componentes/contenedores en el Frame … GUI Laboratorio de Programacion 12 GUI Laboratorio de Programacion 13 Eclipse Eclipse Visual Editor Eclipse es una comunidad de código abierto cuyos proyectos se centran en proporcionar una plataforma de desarrollo independiente de los fabricantes. Eclipse proporciona un marco de trabajo basado en plug-ins que facilita la creación, integración y utilización de herramientas software. Soportado por los principales sistemas operativos: Linux, Windows, Solaris 8 (SPARC/GTK 2), Mac OSX – Mac/Carbon GUI Eclipse: características GUI 15 Eclipse: Plug-in Editor de Texto Resaltado de sintaxis Compilación en tiempo real Pruebas unitarias con Junit Refactoring Asistentes (wizards) Plug-ins Característica clave de Eclipse: Extensibilidad Laboratorio de Programacion Laboratorio de Programacion Un plug-in es la mínima unidad de la plataforma que puede ser desarrollado por separado y que le aporta una nueva funcionalidad. 16 GUI JDT (Java Development Toolkit) Visual Editor Proyecto de herramientas de desarrollo en C/C++ (CDT) Omondo EclipseUML Spring Framework Jautodoc AspectJ, etc. Laboratorio de Programacion 17 3 Eclipse: editores gráficos Eclipse no contiene entorno gráfico, para ello, es necesario instalarle un plugin adecuado, entre los más conocidos se encuentran: GUI Eclipse Visual Editor Eclipse Visual Editor SWT GUI Builder Java Advanced Imaging Advanced Eclipse SWT Designer Jlense Jelly SWT Workzen Sweet-SWT JBeaver Swing GUI Builder Jigloo, entre otros. Laboratorio de Programacion Eclipse Visual Editor (VE) es un entorno de creación de interfaces gráficos de usuario en Eclipse Dirigido no solamente a Swing/JFC y SWT, sino también a otros lenguajes (como C/C++) y widgets. Dispone de editores gráficos avanzados, soporta Windows y Linux/GTK, permite editar tanto el código Java como el modo visual y que se reflejen los cambios. VE necesita de las siguientes aplicaciones para funcionar: 18 GUI Eclipse Eclipse Modeling Framework (EMF) GEF Laboratorio de Programacion 19 Creación de una clase visual (Visual Class) Instalación: pasos Se puede realizar de dos formas: On-line (mediante Eclipse activo) Off-line (Eclipse debe estar cerrado) En este caso, explicamos el segundo caso: 1. Se recomienda tener instalado el Eclipse 3.2.2. Además, debe contarse con los siguientes paquetes: EMF 2.2.0, GEF 3.2, JEM 1.2.3 y VE 1.2.3 (disponibles en archivos ZIP). 2. Descomprimir cada uno de los paquetes en la misma carpeta en que se encuentra el eclipse instalado (sobrescribiendo los archivos existentes). 3. Una vez completado el paso 2, ahora el VE se encuentra listo para su uso. 4. Abrir el eclipse. GUI Laboratorio de Programacion 20 Creación de una clase visual… GUI Laboratorio de Programacion GUI Laboratorio de Programacion 21 Vista general Eclipse 22 GUI Laboratorio de Programacion 23 4 Vista particular Visual Editor Vista Eclipse Visual Editor… A. Donde se encuentra el código correspondiente a la clase creada. Inicialmente dicho código se crea de forma automática de acuerdo al estilo elegido (en este caso un JFrame), posteriormente puede continuar automáticamente o editable de forma manual. B. Se encuentra representado gráficamente el estilo elegido. Básicamente aparece el contenedor inicial (en este caso el JFrame) al cuál se le podrá modificar las características del mismo y agregar los respectivos componentes. C. La paleta (Palette), para diseñar cualquier contenedor de forma más rápida. B A Una vez creada la clase visual, podemos apreciar que la vista de Edición se divide en tres partes: C Vista de edición de Eclipse GUI Laboratorio de Programacion 24 Ejercicio con Visual Editor Laboratorio de Programacion 25 Consultas… Ejercicio: Realizar una clase tipo visual que extienda de JFrame e insertar 3 componentes: GUI GUI JLabel: que contenga la cadena “Mensaje” JTextField: de longitud 20 JButton: que contenga la cadena “Mostrar”, y cuando se presione este botón, que imprima el mensaje escrito en el campo de texto en la Consola de Eclipse. Laboratorio de Programacion 26 GUI Laboratorio de Programacion 27 Próxima clase GUI Próxima teoría: 6 de mayo Tecnología XML Laboratorio de Programacion 28 5