Download Interfaces Gráficas I
Document related concepts
no text concepts found
Transcript
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO Interfaz Gráfica de Usuario (GUI) Interfaz Gráfica de Usuario • Diseñar el funcionamiento por medio de casos de uso • Diseñar la interfaz gráfica que implementará el funcionamiento • Java proporciona dos paquetes para manejo de gráficos AWT (Abstract Window Toolkit) Swing • Java los agrupa en los paquete java.awt Componentes Básicos SWING Componentes contenedores JFrame (ventana independiente) JPanel (componente vacío) • Componentes ordinarios JTextField JButton JComboBox Jlist JLabel JTextArea JCheckBox JRadioButton Clase JTextField • Permite capturar texto por medio de una caja de texto • Métodos más usados Valor de retorno void String void String String void Método setText(String t) getText() setEditable(boolean b) getSelectedText() getText(int offs, int len) select(int inicio, int fin) Clase JButton • Un botón puede desplegar texto, un icono o ambos • Cuando un usuario hace clic al botón, los eventos Action se envían a todos los Action listeners • JButtons envían acciones de eventos. • La interfaz ActionListener contiene un método en el cual se programan las acciones que se ejecutarán al hacer clic: public void actionPerformed(ActionEvent v) { // ACCIONES } Clase JComboBox (1) • Combina la funcionalidad de un TextField y una lista drop-down • Se puede presentar al usuario una lista de opciones y sino aparece, la puede capturar (si es editable el ComboBox) String[] initialVals = {“básico", “medio", “avanzado"}; JComboBox combo = new JComboBox(initialVals); Clase JComboBox (2) • Métodos más usados Valor de retorno void Object boolean void Object void Método addItem(Object x) getSelectedItem() isEditable() removeAllItems() getItemAt(int index) setSelectedIndex(int index) Clase JList (1) • Muestra um conjunto de datos en forma de lista • Se pueden seleccionar y efectuar acciones Valor de retorno Object boolean boolean void int void Método getSelectedValue() isSelectedIndex(int index) isSelectionEmpty() setListData(Object[] listData) getSelectedIndex() select(int inicio, int fin) Clase JList (2) • Inicializa la lista con tres opciones String[] s = {"pedro","pablo","maria"}; jList1.setListData(s); • Obtener el elemento seleccionado, si se selecciona el segundo elemento s contendrá “pablo” String s = (String) lista1.getSelectedValue(); Clase JOptionPane (1) • La clase JOptionPane encapsula formatos de ventanas de diálogo, sin declar ningún contenedor • JOptionPane define 5 mensajes: ERROR_MESSAGE INFORMATION_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE • El comportamiento es habilitado por los métodos estáticos showConfirmDialog() showMessageDialog(). Clase JOptionPane (2) • Método estático showMessageDialog() Muestra un mensaje al usuario JOptionPane.showMessageDialog(null, "Mensaje", "Título Ventana", JOptionPane.INFORMATION_MESSAGE); •Método estático showConfirmDialog() Muestra una ventana de diálogo con dos botones SI y NO devuelve un valor según la opción seleccionada , int x = JOptionPane.showConfirmDialog(null "¿Desea continuar?", "Ventana de Confirmación!", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); X=0 si el usuario presiona “SI” X=1 si el usuario presiona “NO” UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO Diseño de GUIs con NetBeans Aplicación Gráfica Mostrar un saludo al usuario que capturó su nombre en la caja de texto El saludo se muestra en una ventana emergente al hacer clic sobre el botón Ejecutar Diseño de GUI (1) • Crear un Proyecto en NetBeans Archivo=> Proyecto Nuevo=> Java (Categorías)=>Aplicación de Escritorio Java (Proyectos) Clic Siguiente Diseño de GUI (2) • Teclear Nombre del proyecto, Seleccionar “Aplicación Básica” , clic en “Terminar” Clic Terminar Espacio de Trabajo (1) • • • • Se crean un paquete llamado Ventana VentanaAboutBox.java es una ventana de “Acerca de” de la aplicación VentanaApp.java contiene el método que ejecuta la aplicación (main) VentanaView.java contiene el diseño y código de los componentes gráficos Este código es el que se modifica Herramientas de compilación/ ejecución Cambia entre el diseño gráfico y el código fuente Explorador del proyecto Área de diseño Paleta de componentes gráficos Aplicación Ventana (1) • Hacer doble clic sobre el nombre VentanaView.java aparece del lado derecho el espacio de diseño donde se agregarán los componentes gráficos Paleta de objetos gráficos Aplicación Ventana (2) • Sobre el “Área de Diseño” hacer clic con el botón derecho del mouse para obtener el menú desplegable • Cambiar el nombre de la variable del espacio de Trabajo (contenedor) representado por un JPanel Menú • Nuevo nombre ventanaInicio emergente Aplicación Ventana (3) • Cambiar el nombre del Contenedor de los componentes (JPanel) por un nombre significativo Aplicación Ventana (4) • Agregar un componente JTextField y un JButton al JPanel (ventanaInicio) JButton JTextField Asignar nombres a los componentes • Cambiar el nombre de las variables de instancia por default (jTextField1 y jButton1) por nombres más significativos (txtNombre y btnSaludar) Clic derecho sobre el componente para aparecer el menú emergente Cambiar el nombre de la variable de instancia por txtNombre Inicializar los componentes • Editar el texto que aparece en el formulario (JPanel) el cual se desplegará en la aplicación (jTextField1 y jButton1) por textos más significativos (“capture su nombre” y “Ejecutar”) Clic derecho sobre el componente para aparecer el menú emergente Cambiar el texto del component e por Ejecutar Agregar acciones al componente JButton • Desplegar el menú emergente (clic derecho sobre el componente) • Agregar la acción actionPerformed al botón btnEjecutar Clic en ActionPerformed Implementar las acciones-código (1) • Al hacer clic en actionPerformed automáticamente nos lleva a la sección del código (el método) donde se implementará el código que se ejecuta cuando el usuario hace clic sobre el botón • Implementar las acciones Método donde se realizan las acciones Manejador del eventos variable evt Implementar las acciones-código (2) • Implementar las siguientes acciones: Agregar al inicio del código la siguiente línea para hacer uso de la clase JOptionPane import javax.swing.JOptionPane; Extraer el texto captura en el JTextBox con el método getText() por medio de la variable de instancia txtNombre String s = txtNombre.getText(); Ejecutar el método estático showMessageDialog de la clase JOptionPane para mostrar el mensaje en la ventana emergente JOptionPane.showMessageDialog(null, "Hola " + s); Ejecución de la aplicación Distribuir la aplicación (1) • Generar el paquete de la aplicación, seleccionar del menú: Ejecutar=>Generar Main Project En la Pestaña Archivos aparecerá una carpeta dist que contiene la aplicación Distribuir la aplicación (2) • Las aplicación se puede ejecutar en cualquier PC que contenga Java SE 6 • En el directorio donde se creó el proyecto, la carpeta dist contiene la aplicación y las librerías necesarias. Para distribuirla copiar la carpeta dist Aplicación + librerías necesarias Distribuir la aplicación (3) • Para ejecutar la aplicación: Desde Windows Hacer doble clic sobre el archivo jar, contiene las clases compiladas y ejecuta la clase VentanaApp que contiene el método main Desde la consola de MS-DOS C:\dist> java -jar Ventana.jar la opción –jar le indica al interprete que es un archivo jar y que contiene dentro las definiciones de qué archivo ejecutar. En este caso VentanaApp Ejercicio I • Realizar un programa gráfico que capture dos números y realice la suma y multiplicación de dichos números. Los resultados se muestran en una ventana emergente. Ejercicio II • Validar los datos del ejercicio1 • Mostrar al usuario un mensaje emergente si no captura alguno de los datos • Sólo mostrar el resultado si los datos son válidos • Métodos sugeridos: parseInt getText equals (Clase Integer) (Clase JTextField) (Clase String)