2 Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 7 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas de laboratorios, haciendo uso de este antes, durante y después de la práctica, de tal forma que ofrece un método facilitador en su proceso de enseñanza/aprendizaje durante esta asignatura. En el desarrollo de esta asignatura se ha designado realizar las prácticas en 16 sesiones semanales de laboratorios, los que incluyen 11 prácticas, dos parciales y un proyecto final durante los cuales, el estudiante aplicará los conceptos y las técnicas fundamentalmente necesarias para el desarrollo de aplicaciones y soluciones utilizando Java como lenguaje de programación. Todas las guías de laboratorio están estructuradas de la siguiente forma: - Objetivos - Materiales y equipos - Introducción teórica - Procedimiento - Bibliografía - Hoja de evaluación( En caso de que la actividad sea evaluada ) La asignatura Java avanzado,está dividida en ocho unidades durante el ciclo.
4 Java Avanzado, Guía 7 Facultad: Ingeniería. Escuela: Computación. Asignatura: Java Avanzado Pág Guía 7. Fundamentos de SWING. Tabla de Contenido Contenido ---------------------------------------------------------------------------------------- 5 Objetivos ----------------------------------------------------------------------------------------- 5 Materiales y equipos --------------------------------------------------------------------------- 5 Introducción teórica --------------------------------------------------------------------------- 5 Procedimiento ----------------------------------------------------------------------------------- 9 Investigación ------------------------------------------------------------------------------------ 13 Bibliografía --------------------------------------------------------------------------------------- 13
Java Avanzado. Guía 7 5 Tema: Fundamentos de SWING. Contenidos En esta practica se introducirá al estudiantes a SWING, haciendo énfasis en las Clases Jframe, JPanel y Creación de Formas 2D, Así mismo se podrán aplicaciones en java con capacidad de manipular fuentes de texto e imágenes. Objetivo Específico a) Practicar el desarrollo de formularios básicos en Java GUI básicas haciendo énfasis el aprendizaje clases Jframe, JPanel y Creación de Formas 2D,fuentes de texto e imágenes. Materiales y Equipo Swing a) Netbeans b) JDKJava Introducción Teórica Swing es un extenso conjunto de componentes que van desde los más simples, como etiquetas, hasta los más complejos, como tablas, arboles, y documentos de texto con estilo. Casi todos los componentes Swing descienden de un mismo padre llamado JComponent que desciende de la clase de AWT Container. Es por ello que Swing es más una capa encima de AWT que una sustitución del mismo. La figura 1 muestra una parte de la jerarquía de JComponent. Si se compara con la jerarquía de Component notará que para cada componente AWT hay otro equivalente en Swing que empieza con "J". La única excepción es la clase de AWT Canvas, que se puede reemplazar con JComponent, JLabel, o JPanel. Asimismo se puede notar que existen algunas clases Swing sin su correspondiente homologo. La figura 1 representa solo una pequeña fracción de la librería Swing, pero esta fracción son las clases con las que se enfrenta más a menudo. El resto de Swing existe para suministrar un amplio soporte y la posibilidad de personalización a los componentes que estas clases definen A los componentes Swing se les denomina ligeros mientras que a los componentes AWT se les denominados pesados. La diferencia entre componentes ligeros y pesados es su orden: la noción de profundidad. Cada componente pesado ocupa su propia capa de orden Z.
6 Java Avanzado, Guía 7 Todos los componentes ligeros se encuentran dentro de componentes pesados y mantienen su propio esquema de capas definido por Swing. Cuando se coloca un componente pesado dentro de un contenedor que también lo es, se superpondrá por definición a todos los componentes ligeros del contenedor. Lo que esto significa es que se debe evitar el uso de componentes ligeros y pesados en un mismo contenedor siempre que sea posible. Esto no significa que no se pueda mezclar nunca con éxito componentes AWT y Swing, sólo que se tiene que tener cuidado y saber qué situaciones son seguras y cuáles no. Puesto que probablemente no se es capaz de prescindir completamente del uso de componentes pesados en un breve espacio de tiempo, se debe encontrar formas de que las dos tecnologías trabajen juntas de manera aceptable. La regla más importante a seguir es que no se debe colocar componentes pesados dentro de contenedores ligeros, que comúnmente soportan hijos que se superponen. Algunos ejemplos de este tipo de contenedores son JInternalFrame, JScrollPane, JLayeredPane, y JDesktopPane. En segundo lugar, si se usa un menú emergente en un contenedor que posee un componente pesado, se tiene que forzar a dicho menú a ser pesado. Para controlar esto en una instancia específica de JPopupMenu se puede usar su método setlightweightpopupenabled().. Alternativamente se puede llamar al método estático setdefaultlightweightpopupenabled() de JPopupMenu y pasarle un valor false para forzar a todos los menús emergentes de una sesión de Java a ser pesados. Se debe tener en cuenta que sólo afectará a los menús emergentes creados a partir de que se ha hecho la llamada. Es por eso una buena idea llamar a este método durante la inicialización. La característica más notable de los componentes Swing es que están escritos al 100% en Java y no dependen de componentes nativos, como sucede con casi todos los componentes AWT. Esto significa que un botón Swing y un área de texto se verán y funcionarán idénticamente en las plataformas Macintosh, Solaris, Linux y Windows. Este diseño elimina la necesidad de comprobar y depurar las aplicaciones en cada plataforma destino..
Figura 1 Java Avanzado. Guía 7 7
8 Java Avanzado, Guía 7 Procedimiento 1. Frame La clase Jframe es una versión que hereda de la clase java.awt.frame, la cual le añade el soporte necesario para la arquitectura de los componentes de Swing. En el siguiente código se muestra como realizar un frame básico. FrameSencillo.java Ejecución y compilación 2. Control de Colores en un JPanel Los JPanel en Java son objetos contenedores, la finalidad de estos objetos es la agrupación de otros objetos tales como botones, campos de texto, etiquetas, selectores, etc; una gran ventaja de Usar JPanel en Java es que se puede manejar la agrupación de una mejor forma. En el siguiente programa se ejemplifica como se maneja un Jpanel para manejar los colores a mostrar en pantalla.
Java Avanzado. Guía 7 9 ColorJPanel.java Digitar el código ShowColors.java a partir del cual se cargará el JPanel. ShowColors.java Compilar el programa ColorJPanel.java y ShowColors.java, y luego ejecutar el programa Showcolors.java.
10 Java Avanzado, Guía 7 Ejecución y compilación 3. Uso de JCheckBox El control JCheckBox permite implementar un cuadro de selección (básicamente un botón de dos estados), en el siguiente código se ejemplifica las acciones que se pueden realizar con este objeto: CasillaVerificacion.java
Java Avanzado. Guía 7 11 Compilar el programa CasillaVerificacion.java y ejecutarlo Ejecución y compilación 4. Uso de JComboBox El control JComboBox permite seleccionar un String de una lista. Para inicializar los String que contendrá el JComboBox se debe invocar al método additem tantas veces como elementos se deseen cargar. Un evento muy útil con este control es cuando el operador selecciona un Item de la lista. En el siguiente ejemplo se visualiza las acciones a realizar para utilizar este elemento de la librería swing:
12 Java Avanzado, Guía 7 PruebaJComboBox.java Compilar el programa PruebaJComboBox.java y ejecutarlo Ejecución y compilación
Java Avanzado. Guía 7 13 5. Uso de Botones y acciones Se puede decir que el control JLabel remplaza a la salida estándar System.out.print, y el control JTextField cumple la función de la clase Scanner para la entrada de datos. El control JTextField permite al operador del programa ingresar una cadena de caracteres por teclado. JButton es un control visual de uso muy común. Este control visual muestra un botón. El proceso para añadir botones a un control JFrame es similar a añadir controles de tipo JLabel. En el siguiente ejemplo se verá la captura de eventos con los controles visuales. Uno de los eventos más comunes es cuando se realiza clic sobre un botón: Conversor.java
14 Java Avanzado, Guía 7
Java Avanzado. Guía 7 15 Compilar el programa Conversor.java y ejecutarlo Ejecución y compilación
16 Java Avanzado, Guía 7 6. Uso de etiquetas En el siguiente programa se muestra el uso de etiquetas: Reloj.java
Java Avanzado. Guía 7 17 Compilar el programa Reloj.java y ejecutarlo Ejecución y compilación
18 Java Avanzado, Guía 7 Investigación Complementaria 1. Implementar un formulario en el que se pida la siguiente información: a. Nombres b. Apellidos c. Edad d. Genero (Masculino/Femenino) e. Departamento. En este formulario se debe tener 2 botones: 1 que validara que la información este completa y por medio de la clase JOptionPane.showMessageDialog, mostrarà los mensajes de validación. En caso la información este completa mostrará en un cuadro de dialogo el siguiente mensaje: Bienvenido [NOMBBRES] [APELLIDOS] usted tiene tiene [EDAD] años y vive en [DEPARTAMENTO]. El 2do botón limpiara la información que puedan tener los campos. Bibliografía Aprendiendo Java 2 en 21 Días Lemay, Laura Cómo Programar en Java Deitel, Harvey M.