SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Introducción a Swing
Taller de Programación 2016
tprog@fing.edu.uy
• ¿En qué estamos exactamente?
• ¿Cómo debemos codificar?
• ¿Por donde empezar?
• Empecemos por entender el contexto y la
arquitectura de lo que debemos construir en
esta primera etapa
Introducción
• Contexto
• Arquitectura en capas
• Al día de hoy…
Introducción
Introducción
• Pensemos en la calidad del software
• Más precisamente en la USABILIDAD
Introducción
Introducción
• Paréntesis…
▫ Relacionémoslo con el laboratorio
Diagrama de componentes
propuesto en la letra
Introducción
• Resumen del contexto
▫ Se requiere una capa de presentación
gráfica, no por consola de comandos
▫ Es decir, el proyecto requiere una
tecnología para construir una capa de
presentación más amigable e intuitiva
▫ Para cumplir con dicho requerimiento se
propone el uso de Swing
Introducción
• Tecnología Java para la construcción de
interfaces de gráficas de escritorio
• Biblioteca que contiene un conjunto de
controles y elementos gráficos como botones,
listas, etiquetas, etc., que permiten interactuar
con la lógica de la aplicación
• Permite construir interfaces capaces de ser
ejecutadas en diferentes plataformas (al igual
que el propio lenguaje Java)
¿Qué es Swing?
• Está implementado en 18 paquetes (packages)
▫ Los paquetes más utilizados son:
 javax.swing
 javax.swing.events
▫ Swing utiliza (“hereda de”) AWT (Abstract
Window Toolkit) una versión “primitiva” para
manejo de interfaces gráficas en Java
¿Qué es Swing?
• Posee una gran cantidad de características,
por ejemplo:
▫ Jerarquías de componentes Swing
▫ Uso de layout managers
▫ Uso de models
▫ Manejo de eventos
¿Qué es Swing?
• Jerarquía de componentes Swing
▫ Contenedores de Alto Nivel (top-level containers)
 son la raíz de la jerarquía de componentes
▫ Contenedores Intermedios (intermediate containers)
 pueden tener otros contenedores intermedios y/o
componentes básicos
▫ Componentes Básicos (basic components)
 controles elementales para entrada y salida de
datos a los usuarios finales
¿Qué es Swing? :: Componentes
• Contenedores de Alto Nivel
▫ Algunos top-level containers
 JFrame: ventana con título, borde y contenido
 JDialog: sub-ventana independiente (cuadro de
diálogo)
▫ Para visualizar un control Swing en pantalla, debe
pertenecer a alguna jerarquía de contenedores (cuya
raíz será un top-level container)
▫ Cada top-level container tiene un content-pane que
contendrá todos los componentes visibles
¿Qué es Swing? :: Componentes
• Contenedores de Alto Nivel
• Opcionalmente un top-level puede incluir
una barra de menús (menu bar)
• La barra de menú no está
contenida en el content-pane
¿Qué es Swing? :: Componentes
• Contenedores Intermedios, ejemplos
▫ JPanel: contenedor de componentes
▫ JScrollPane: proporciona barras de desplazamiento
alrededor de un componente
▫ JSplitPane: permite al usuario cambiar el tamaño
relativo de dos componentes
▫ JInternalFrame: ventana dentro de otra ventana
¿Qué es Swing? :: Componentes
• Layout
▫ Se refiere al esquema de distribución de los
elementos dentro de un diseño
• Layout Manager
▫ Es un objeto que implementa la interfaz
LayoutManager y determina el tamaño y posición
de los componentes dentro de un contenedor
▫ Realiza el layout (tamaño y ubicación) automático
de los elementos que se agregan al contenedor al
cual el layout manager controla
¿Qué es Swing? :: Layouts
• Layout Manager
▫ Existen múltiples formas preexistentes de layout
managers así como la posibilidad de no utilizar
ningún layout manager (llamado Absolute Layout).
▫ También se pueden crear layout managers
personalizados (poco común y desaconsejable)
▫ Los más sencillos son: BorderLayout, FlowLayout,
BoxLayout y GridLayout
¿Qué es Swing? :: Layouts
BorderLayout
Utiliza cinco zonas para colocar componentes
FlowLayout
Acomoda los componentes de izquierda a derecha
BoxLayout
Componentes de forma horizontal y vertical (X, Y)
GridLayout
Acomoda componentes en forma de matriz
¿Qué es Swing? :: Layouts
• Uso de Modelos (pequeña visión)
▫ Casi la totalidad de los componentes poseen un
modelo (Model), aunque típicamente el
programador no necesite saber de él
▫ Los modelos más útiles son colecciones de
elementos que serán mostrados por componentes
▫ Por ejemplo, si tenemos una lista de elementos, y
queremos mostrarlo en un control JList, debemos
trabajar sobre el modelo de la lista (con la
colección), para que esta se vea bien en pantalla
¿Qué es Swing? :: Modelos
• Manejo de eventos
▫ Un evento ocurre cada vez que el usuario
interactúa con componentes de la interfaz gráfica
▫ Se dice que el evento es “disparado” por Swing y el
programador, si le interesa hacer algo debido a la
ocurrencia del evento, debe “manejarlo”
▫ Similar al manejo de excepciones, pero un evento
no manejado no provoca un error en el programa
▫ Manejar un evento significa asociar un código para
que se ejecute cuando el evento se dispara
¿Qué es Swing?¿Qué es Swing? :: Eventos
• Manejo de eventos
▫ Un control tiene una serie de eventos a los que
podemos especificarles código
▫ Ejemplo
▫ Evento click de un botón que tiene el objetivo
de dar un alta de Usuario
▫ Al presionar dicho botón, se ejecutará código
definido por el usuario programador, el cual creará
un Usuario en el Sistema…
¿Qué es Swing? :: Eventos
• Al presionar el botón
“Registrar”, se captura el
evento “click” y se ejecuta el
código definido
• En este caso se toman los
datos de la interfaz gráfica:
nombre, apellido y C.I.
• Luego se llama a una interfaz
de caso de uso, que registra
un Usuario en el Sistema
¿Qué es Swing? :: Eventos
• ¿Cómo desarrollar en Swing?
▫ Hacerlo mediante código puro
▫ Utilizar como ayuda el diseñador
incorporado en los IDE, el cual genera código
para facilitar el proceso de diseño GUI.
Recomendaciones prácticas
Diseñador
Mediante Drag and Drop
(arrastrar y soltar), el
usuario Programador
diseña la interfaz
Luego se agrega el código
pertinente para trabajar
con la lógica (eventos, etc.)
Recomendaciones prácticas
• Antes de ejecutar, veamos la realidad
implementada:
▫ Se ha creado un software que permite el
registro de Usuarios de los que se conoce
el nombre, apellido y su cédula de
identidad (que lo identifica)
▫ Se debe brindar la posibilidad de buscar
Usuarios por su cédula y ver su
información personal
Demo
• Se cuenta con dos paquetes
▫ Lógica (Clases)
 Usuario (representa al Usuario)
 DataUsuario (representa su información)
 ManejadorUsuario (colección global de usuarios)
 ControladorUsuario (controlador de los CU)
 IControladorUsuario (interface del controlador)
 Fábrica (creadora de interfaces)
▫ Presentación
 JFrame Principal.java
Demo
Demo
The Swing Tutorial (Oracle)
http://download.oracle.com/javase/tutorial/uiswing/index.html
The Definitive Guide to Java Swing (J. Zukowski)
http://link.springer.com/book/10.1007/978-1-4302-0033-8
Piensa en Java (B. Eckel)
http://www.univo.edu.mx/computo/maestria/Pensando%20En%2
0Java.pdf
Referencias

Más contenido relacionado

Similar a Introducción a swing. taller de programación 2016

Manual java swing
Manual java swingManual java swing
Manual java swingRobert Wolf
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Omar B.
 
Trabajo teórico exposcición
Trabajo teórico exposciciónTrabajo teórico exposcición
Trabajo teórico exposciciónAndy Bsc
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Tonymx
 
APRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdfAPRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdfJavierCastilloPrez
 
APRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdfAPRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdfJavierCastilloPrez
 
Angela ramirez
Angela ramirezAngela ramirez
Angela ramirezbcn1965
 
Actividad 4 presentacion multimedia modulo 4
Actividad 4 presentacion multimedia modulo 4Actividad 4 presentacion multimedia modulo 4
Actividad 4 presentacion multimedia modulo 4Celestino Hernandez
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloSoftware Guru
 
Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01Ricardo Garcia
 
Diferencia entre Swing y Awt
Diferencia entre Swing y AwtDiferencia entre Swing y Awt
Diferencia entre Swing y AwtValentinaCely
 
Lps 15 gu-iconswing
Lps 15 gu-iconswingLps 15 gu-iconswing
Lps 15 gu-iconswingjbersosa
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
 
Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)Esmedc20
 

Similar a Introducción a swing. taller de programación 2016 (20)

Clase swing
Clase swingClase swing
Clase swing
 
Manual java swing
Manual java swingManual java swing
Manual java swing
 
S5 p2
S5 p2S5 p2
S5 p2
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)
 
Trabajo teórico exposcición
Trabajo teórico exposciciónTrabajo teórico exposcición
Trabajo teórico exposcición
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2
 
APRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdfAPRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdf
 
APRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdfAPRENDER-M_22965542_1641718269400.pdf
APRENDER-M_22965542_1641718269400.pdf
 
Angela ramirez
Angela ramirezAngela ramirez
Angela ramirez
 
Actividad 4 presentacion multimedia modulo 4
Actividad 4 presentacion multimedia modulo 4Actividad 4 presentacion multimedia modulo 4
Actividad 4 presentacion multimedia modulo 4
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vuelo
 
Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01
 
Diferencia entre Swing y Awt
Diferencia entre Swing y AwtDiferencia entre Swing y Awt
Diferencia entre Swing y Awt
 
S5-P2.pptx
S5-P2.pptxS5-P2.pptx
S5-P2.pptx
 
Lps 15 gu-iconswing
Lps 15 gu-iconswingLps 15 gu-iconswing
Lps 15 gu-iconswing
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)
 
Interfaces graficas(1)
Interfaces graficas(1)Interfaces graficas(1)
Interfaces graficas(1)
 

Más de angeles104

Ubuntu18 ligdm-traducido
Ubuntu18 ligdm-traducidoUbuntu18 ligdm-traducido
Ubuntu18 ligdm-traducidoangeles104
 
Mejores procesadores del mercado junio 2018
Mejores procesadores del mercado junio 2018Mejores procesadores del mercado junio 2018
Mejores procesadores del mercado junio 2018angeles104
 
Instalacion windows-7
Instalacion windows-7Instalacion windows-7
Instalacion windows-7angeles104
 
5 servidor web
5 servidor web5 servidor web
5 servidor webangeles104
 
Apache htaccess
Apache htaccessApache htaccess
Apache htaccessangeles104
 
1 archivos jar
1 archivos jar1 archivos jar
1 archivos jarangeles104
 

Más de angeles104 (7)

Ubuntu18 ligdm-traducido
Ubuntu18 ligdm-traducidoUbuntu18 ligdm-traducido
Ubuntu18 ligdm-traducido
 
Mejores procesadores del mercado junio 2018
Mejores procesadores del mercado junio 2018Mejores procesadores del mercado junio 2018
Mejores procesadores del mercado junio 2018
 
Instalacion windows-7
Instalacion windows-7Instalacion windows-7
Instalacion windows-7
 
5 servidor web
5 servidor web5 servidor web
5 servidor web
 
Apache htaccess
Apache htaccessApache htaccess
Apache htaccess
 
1 archivos jar
1 archivos jar1 archivos jar
1 archivos jar
 
Ftp
FtpFtp
Ftp
 

Último

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaAlejandraFelizDidier
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxsisimosolorzano
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 

Último (20)

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 

Introducción a swing. taller de programación 2016

  • 1. Introducción a Swing Taller de Programación 2016 tprog@fing.edu.uy
  • 2. • ¿En qué estamos exactamente? • ¿Cómo debemos codificar? • ¿Por donde empezar? • Empecemos por entender el contexto y la arquitectura de lo que debemos construir en esta primera etapa Introducción
  • 3. • Contexto • Arquitectura en capas • Al día de hoy… Introducción
  • 5. • Pensemos en la calidad del software • Más precisamente en la USABILIDAD Introducción
  • 7. • Paréntesis… ▫ Relacionémoslo con el laboratorio Diagrama de componentes propuesto en la letra Introducción
  • 8. • Resumen del contexto ▫ Se requiere una capa de presentación gráfica, no por consola de comandos ▫ Es decir, el proyecto requiere una tecnología para construir una capa de presentación más amigable e intuitiva ▫ Para cumplir con dicho requerimiento se propone el uso de Swing Introducción
  • 9. • Tecnología Java para la construcción de interfaces de gráficas de escritorio • Biblioteca que contiene un conjunto de controles y elementos gráficos como botones, listas, etiquetas, etc., que permiten interactuar con la lógica de la aplicación • Permite construir interfaces capaces de ser ejecutadas en diferentes plataformas (al igual que el propio lenguaje Java) ¿Qué es Swing?
  • 10. • Está implementado en 18 paquetes (packages) ▫ Los paquetes más utilizados son:  javax.swing  javax.swing.events ▫ Swing utiliza (“hereda de”) AWT (Abstract Window Toolkit) una versión “primitiva” para manejo de interfaces gráficas en Java ¿Qué es Swing?
  • 11. • Posee una gran cantidad de características, por ejemplo: ▫ Jerarquías de componentes Swing ▫ Uso de layout managers ▫ Uso de models ▫ Manejo de eventos ¿Qué es Swing?
  • 12. • Jerarquía de componentes Swing ▫ Contenedores de Alto Nivel (top-level containers)  son la raíz de la jerarquía de componentes ▫ Contenedores Intermedios (intermediate containers)  pueden tener otros contenedores intermedios y/o componentes básicos ▫ Componentes Básicos (basic components)  controles elementales para entrada y salida de datos a los usuarios finales ¿Qué es Swing? :: Componentes
  • 13. • Contenedores de Alto Nivel ▫ Algunos top-level containers  JFrame: ventana con título, borde y contenido  JDialog: sub-ventana independiente (cuadro de diálogo) ▫ Para visualizar un control Swing en pantalla, debe pertenecer a alguna jerarquía de contenedores (cuya raíz será un top-level container) ▫ Cada top-level container tiene un content-pane que contendrá todos los componentes visibles ¿Qué es Swing? :: Componentes
  • 14. • Contenedores de Alto Nivel • Opcionalmente un top-level puede incluir una barra de menús (menu bar) • La barra de menú no está contenida en el content-pane ¿Qué es Swing? :: Componentes
  • 15. • Contenedores Intermedios, ejemplos ▫ JPanel: contenedor de componentes ▫ JScrollPane: proporciona barras de desplazamiento alrededor de un componente ▫ JSplitPane: permite al usuario cambiar el tamaño relativo de dos componentes ▫ JInternalFrame: ventana dentro de otra ventana ¿Qué es Swing? :: Componentes
  • 16. • Layout ▫ Se refiere al esquema de distribución de los elementos dentro de un diseño • Layout Manager ▫ Es un objeto que implementa la interfaz LayoutManager y determina el tamaño y posición de los componentes dentro de un contenedor ▫ Realiza el layout (tamaño y ubicación) automático de los elementos que se agregan al contenedor al cual el layout manager controla ¿Qué es Swing? :: Layouts
  • 17. • Layout Manager ▫ Existen múltiples formas preexistentes de layout managers así como la posibilidad de no utilizar ningún layout manager (llamado Absolute Layout). ▫ También se pueden crear layout managers personalizados (poco común y desaconsejable) ▫ Los más sencillos son: BorderLayout, FlowLayout, BoxLayout y GridLayout ¿Qué es Swing? :: Layouts
  • 18. BorderLayout Utiliza cinco zonas para colocar componentes FlowLayout Acomoda los componentes de izquierda a derecha BoxLayout Componentes de forma horizontal y vertical (X, Y) GridLayout Acomoda componentes en forma de matriz ¿Qué es Swing? :: Layouts
  • 19. • Uso de Modelos (pequeña visión) ▫ Casi la totalidad de los componentes poseen un modelo (Model), aunque típicamente el programador no necesite saber de él ▫ Los modelos más útiles son colecciones de elementos que serán mostrados por componentes ▫ Por ejemplo, si tenemos una lista de elementos, y queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la colección), para que esta se vea bien en pantalla ¿Qué es Swing? :: Modelos
  • 20. • Manejo de eventos ▫ Un evento ocurre cada vez que el usuario interactúa con componentes de la interfaz gráfica ▫ Se dice que el evento es “disparado” por Swing y el programador, si le interesa hacer algo debido a la ocurrencia del evento, debe “manejarlo” ▫ Similar al manejo de excepciones, pero un evento no manejado no provoca un error en el programa ▫ Manejar un evento significa asociar un código para que se ejecute cuando el evento se dispara ¿Qué es Swing?¿Qué es Swing? :: Eventos
  • 21. • Manejo de eventos ▫ Un control tiene una serie de eventos a los que podemos especificarles código ▫ Ejemplo ▫ Evento click de un botón que tiene el objetivo de dar un alta de Usuario ▫ Al presionar dicho botón, se ejecutará código definido por el usuario programador, el cual creará un Usuario en el Sistema… ¿Qué es Swing? :: Eventos
  • 22. • Al presionar el botón “Registrar”, se captura el evento “click” y se ejecuta el código definido • En este caso se toman los datos de la interfaz gráfica: nombre, apellido y C.I. • Luego se llama a una interfaz de caso de uso, que registra un Usuario en el Sistema ¿Qué es Swing? :: Eventos
  • 23. • ¿Cómo desarrollar en Swing? ▫ Hacerlo mediante código puro ▫ Utilizar como ayuda el diseñador incorporado en los IDE, el cual genera código para facilitar el proceso de diseño GUI. Recomendaciones prácticas
  • 24. Diseñador Mediante Drag and Drop (arrastrar y soltar), el usuario Programador diseña la interfaz Luego se agrega el código pertinente para trabajar con la lógica (eventos, etc.) Recomendaciones prácticas
  • 25. • Antes de ejecutar, veamos la realidad implementada: ▫ Se ha creado un software que permite el registro de Usuarios de los que se conoce el nombre, apellido y su cédula de identidad (que lo identifica) ▫ Se debe brindar la posibilidad de buscar Usuarios por su cédula y ver su información personal Demo
  • 26. • Se cuenta con dos paquetes ▫ Lógica (Clases)  Usuario (representa al Usuario)  DataUsuario (representa su información)  ManejadorUsuario (colección global de usuarios)  ControladorUsuario (controlador de los CU)  IControladorUsuario (interface del controlador)  Fábrica (creadora de interfaces) ▫ Presentación  JFrame Principal.java Demo
  • 27. Demo
  • 28. The Swing Tutorial (Oracle) http://download.oracle.com/javase/tutorial/uiswing/index.html The Definitive Guide to Java Swing (J. Zukowski) http://link.springer.com/book/10.1007/978-1-4302-0033-8 Piensa en Java (B. Eckel) http://www.univo.edu.mx/computo/maestria/Pensando%20En%2 0Java.pdf Referencias