Ejemplo de GUI con Swing



Documentos relacionados
Soporte Java para el desarrollo de GUIs. Interfaces gráficas de usuario (2): Swing. Swing AWT. Soporte nativo para GUIs. Una aplicación Swing sencilla

Java es un lenguaje orientado a objetos, por lo que los objetos (las clases) son los elementos más importantes en el diseño y desarrollo de una

Intefaces gráficas. Eventos. Jose Jesus García Rueda

Pasos requeridos para establecer el manejo de eventos para un componente de GUI.

Programación Java Curso C GUI

Desarrollo de Aplicaciones en Java INF 473

EVENTOS en Java generador de un evento gestor de eventos

Desarrollo de Aplicaciones en Java INF 473

Manejo de eventos AWT

Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)

Programación basada en eventos Event- Based Programming : Conceptos. ELO329: Diseño y Programación Orientados a Objetos

Programación de sistemas

Uso de Java Swing. Noviembre de 2013

Programación Conducida por eventos Event-driven programming. Agustín J. González ELO329/ELO330

Programación de sistemas

Introducción a la Programación Orientada a Objetos

Interfaces gráficas en Java GUIs Graphical User Interface

Problema 1 (2 puntos)

IC Programación Orientada a Objetos I. Programación de Interfaces Gráficas de Usuario (GUI) 2

Agenda. Contenedores y componentes

Programación basada en/dirigida por eventos Event-Based Programming : Conceptos (o Event-driven Programming)

Componentes Swing. Las clases cuyo nombre comienza por J forman parte de Swing. Todas las demás están incluidas en AWT (Abstract Window Toolkit)

Interfaces Gráficas de Usuario

Tipos de programas en Java. Programación basada en eventos. Programación basada en eventos. Creación de una interfaz gráfico de usuario

Federico Peinado

INTERFAZ GRÁFICO DE USUARIO EVENTOS

Examen de Programación II (Ingeniería Informática)

Programación de sistemas

Interacción con el Usuario Gestión de Eventos

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación de Eventos

Programación orientada a objetos. Capítulo 11 Construir interfaces gráficas de usuarios

Tema 6. Interfaces gráficas de usuario (Parte II Componentes y eventos)

1 Funcionalidades Java que se presentan en esta práctica

Interfaces gráficas. Jose Jesus García Rueda

Práctica 4. Interfaces Gráficas de Usuario Duración 1 sesión

Construir una Interfaz Gráfica

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

Tópicos Avanzados de Programación (TAP3501)

Ingeniería del Software Separación entre Presentación y Lógica del Negocio

Interfaz Gráfica de Usuario (GUI)

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Capítulo 7. Introducción a las Interfaces Gráficas de usuario. Continuar

E1. Práctica UF2406: El ciclo de vida del desarrollo de aplicaciones

Desarrollo de aplicaciones gráficas

Swing. Andrés Marín López Jesús Arias Fisteus Laboratorio de Aplicaciones Telemáticas

1. Cómo hacer un applet? Implementación de un Applet (awt) Ejecución de los Applets Hacer el archivo HTML con los siguientes

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

Indice. Swing: conceptos. Generalidades. Swing & AWT: diferencias. Interfaz Gráfica de Usuario (GUI)

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Programación Basada en Eventos

Programación Orientada a Objetos. Componentes Gráficos

UNIDAD III.- Programación Concurrente

Creando archivos *.jar 2008

Introducción a la Programación Orientada a Objetos

Interfaces gráficas con Swing

7.- ANEXOS. Anexo 1.-Diagramas uml LISTADO DE CLASES EN UML. Clase P1. Clase FrameAWT

d) Mencione dos diferencias y dos semejanzas entre clases abstractas e interfaces.

ALGORITMICA Y PROGRAMACION POR OBJETOS I

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN

USO DEL OBJETO JLIST

Introducción a las Interfaces Gráficas de Usuario en Java

Práctica #1 Patrón de diseño Singleton

GUIs en Java (4) Iván Alonso

INTERFACES GRÁFICAS MTRA. CAROLINA GALAVIZ INZUNZA. Mtra. Carolina Galaviz Inzunza

CAPITULO 11. CONSTRUIR INTERFACES GRAFICAS DE USUARIO

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

Tema 6. Interfaces gráficas de usuario (Parte 1)

Lenguajes de Programación Curso Práctica 8. Interfaces gráficas de usuario y Swing. Trabajo con modelos. 1. Un ejemplo 2. 2.

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Interfases gráficas. Programación Orientada a Objetos.

Capítulo 1 Patrón de diseño Singleton

Universidad Carlos III de Madrid Departamento de Ingeniería Telemática. Swing

INSTRUCCIÓN PEDIR EN JAVA CON JTEXTAREA Y MOSTRAR CON JLABEL. SETBOUNDS Y SETTEXT. EJEMPLOS. (CU00929C)

la Universidad de las Américas, es probar la participación de los usuarios y referencistas

Tópicos Avanzados de Programación (TAP3501)

Transcripción:

Ejemplo de GUI con Swing Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Una aplicación Swing sencilla El comportamiento deseado para esta aplicación es: Cuando el usuario pulsa en el botón Dí Hola, en el campo de texto la aplicación ha de poner 'Hola' Cuando el usuario pulsa en el botón Dí Adios, en el campo de texto la aplicación ha de poner 'Adios' Cuando el usuario cierra la ventana, la aplicación ha de terminar Facultad de Informática UCM, 2004 Java Swing 2

Una aplicación Swing sencilla El diseño de toda interfaz conlleva, a grandes rasgos, los siguientes pasos: Decidir la estructura de la interfaz Qué componentes gráficos se van a utilizar, y cómo se van a relacionar estos componentes) Decidir la disposición (layout) de los componentes Existen dos tipos de componentes: contenedores y componentes atómicos Los contenedores sirven para organizar los componentes contenidos en los mismos. Esta organización se denomina disposición (o layout) Decidir 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. Normalmente, dichas respuestas supondrán invocar funcionalidades de la lógica de la aplicación Conviene mantener la interfaz y la lógica lo más independientes posibles (veremos patrones que permiten lograr esto) Facultad de Informática UCM, 2004 Java Swing 3 Una aplicación Swing sencilla: estructura Loro (JFrame) Panel Principal (JSplitPane) Botonera (JPanel) Eco (JTextField) Hola (JButton) Adios (JButton) Facultad de Informática UCM, 2004 Java Swing 4

Una aplicación Swing sencilla: estructura import javax.swing.*; public class Loro extends JFrame { private JTextField eco; public Loro() { settitle("loro"); //... JComponent botonera = creabotonera(); JComponent eco = creaeco(); // Crea panel con botonera y eco JSplitPane panelprincipal = new JSplitPane(JSplitPane.VERTICAL_SPLIT,botonera,eco); // Añade el panel a la ventana principal getcontentpane().add(panelprincipal); // Se 'redimensiona' toda la interfaz gráfica en la ventana pack(); // Y hace visible la ventana, con sus componentes setvisible(true); Facultad de Informática UCM, 2004 Java Swing 5 Una aplicación Swing sencilla: estructura private JComponent creabotonera() { JPanel botonera = new JPanel(); // Se crean los botones... JButton hola = new JButton("Dí Hola"); JButton adios = new JButton("Dí Adios"); //.. y se añaden al panel botonera.add(hola); botonera.add(adios); return botonera; //... private JComponent creaeco() { // Se crea el campo de texto donde poner el eco eco = new JTextField("Pulsa un botón"); return eco; Facultad de Informática UCM, 2004 Java Swing 6

Una aplicación Swing sencilla: estructura public static void main(string[] args) { Loro loro = new Loro(); //... aquí termina la ejecución del 'hilo principal', //... pero queda pendiente la ejecución del hilo de //... tratamiento de eventos... A partir de ahora toda la //... ejecución es gobernada por la interacción con el usuario. Facultad de Informática UCM, 2004 Java Swing 7 Una aplicación Swing sencilla: comportamiento Los controles señalizan eventos Diferentes tipos de eventos, dependiendo de los controles La forma de tratar eventos en Swing (y en AWT, a partir de JDK 1.1) es mediante un mecanismo denominado delegación: Por cada tipo de evento notificado por un control, el control acepta un oyente de dicho evento (métodos addxxxlistener) Dicho oyente ha de implementar una interfaz adecuada (XXXListener) Cuando se produce un evento, el control invoca un método apropiado del oyente. Es en este método donde se trata el evento Estas clases están declaradas en el paquete java.awt.event import java.awt.event.*; Facultad de Informática UCM, 2004 Java Swing 8

Una aplicación Swing sencilla: comportamiento OyenteHola actionperformed (ActionEvent ev) Escribir hola en el campo de texto OyenteAdios actionperformed (ActionEvent ev) Escribir adios en el campo de texto OyenteVentana windowclosing (WindowEvent ev) Terminar la ejecución Facultad de Informática UCM, 2004 Java Swing 9 Una aplicación Swing sencilla: comportamiento asociado a los botones private JComponent creabotonera() { JPanel botonera = new JPanel(); // Panel para contener los botones // Se crean los botones... JButton hola = new JButton("Dí Hola"); hola.addactionlistener( new ActionListener() { public void actionperformed(actionevent ev) { eco.settext("hola!"); ); JButton adios = new JButton("Dí Adios"); adios.addactionlistener( new ActionListener() { public void actionperformed(actionevent ev) { eco.settext("adios!"); ); //.. y se añaden al panel botonera.add(hola); botonera.add(adios); return botonera; Facultad de Informática UCM, 2004 Java Swing 10

Una aplicación Swing sencilla: comportamiento asociado a la ventana principal public Loro() { settitle("loro"); addwindowlistener( new WindowAdapter() { public void windowclosing(windowevent ev) { // Se termina la ejecución de la aplicación System.exit(0); ); //... Facultad de Informática UCM, 2004 Java Swing 11 Funcionamiento de las aplicaciones con GUI en Java Java es, por diseño, un lenguaje multiproceso: en un programa Java pueden existir (y de hecho existen) simultáneamente múltiples hilos de ejecución (threads) concurrentes Uno de estos hilos es el hilo de tratamiento de eventos En las aplicaciones con GUI, el hilo principal se limita a construir la estructura de la GUI, a asociar los oyentes adecuados con los controles y, hecho esto, termina pero la aplicación en sí no termina, puesto que todavía queda, al menos, un hilo con vida: el de tratamiento de eventos Este hilo se encarga de tratar automáticamente eventos rutinarios (p.ej. redibujar una ventana cuando ésta pasa a primer plano, o cuando se quita una ventana que la ocultaba parcialmente, actualizar la presentación como resultado de cambios ordenados por la aplicación, etc.) y también se encarga de tratar los eventos de usuario, invocando a los oyentes previamente registrados Facultad de Informática UCM, 2004 Java Swing 12