• No se han encontrado resultados

Introducción a Swing. Taller de Programación 2020

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a Swing. Taller de Programación 2020"

Copied!
29
0
0

Texto completo

(1)

Introducción a

Swing

Taller de Programación 2020 [email protected]

(2)

¿Qué debemos desarrollar?

¿Cómo aplicamos los conocimientos previos?

¿Por dónde empezar?

Empecemos por

entender el contexto

y la

arquitectura de lo que debemos construir en

esta primera etapa

(3)

Desarrollaremos un

sistema distribuido

Cada componente tiene su propia

arquitectura

Introducción

(4)

Conocemos lo que es la

Arquitectura en Capas

Introducción

(5)
(6)

Pensemos en la calidad del software

Más precisamente en la

USABILIDAD

Introducción

(7)
(8)

Relacionémoslo con el laboratorio

Diagrama de componentes propuesto en la letra para el Servidor Central

(9)

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

(10)

Tecnología Java

para la construcción de

interfaces de gráficas (GUI) de escritorio

Biblioteca

que contiene un

conjunto de

controles y elementos gráficos

que permiten

interactuar con la lógica de la aplicación

javax.swing

javax.swing.events

Permite construir interfaces capaces de ser

ejecutadas en

diferentes plataformas

(11)

Veamos las principales

características

:

Componentes :: qué forma parte de la GUI

Layout Managers :: cómo se organizan

Modelos :: cómo se muestra información

Eventos :: cómo se realizan acciones

(12)

Jerarquía de componentes

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 como botones, listas, etiquetas, etc.

(13)

¿Qué es Swing? :: Componentes

JFrame JInternalFrame JButton JTextField JLabel JComboBox JMenuBar JMenuItem JMenu

(14)

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

(15)

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

(16)

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

(17)

Contenedores Básicos, ejemplos

JLabel: etiqueta textual

JTextField: campo para el ingreso de texto

JComboBox: muestra una lista de opciones como un combo desplegable

JButton: botón que permite asociar una acción al evento de pulsado del botón

(18)

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

(19)

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

(20)

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

(21)

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

(22)

Un uso necesario de los modelos es para

manipular la información de una

JTable

¿Qué es Swing? :: Modelos

(23)

Manejo de

eventos

Un evento ocurre cada vez que el usuario

interactúa con componentes de la GUI

Todo componente tiene una serie de eventos que

se “disparan”, a los que podemos especificarles un

código que se ejecutará cuando esto ocurra

Similar al manejo de excepciones, pero un evento no manejado no provoca un error en el programa

¿Qué es Swing?

(24)

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

(25)

¿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.

(26)

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.)

(27)

Se ha creado un software que permite el

registro y búsqueda de Usuarios

Sistema en capas

Lógica: siguiendo buenas prácticas con

datatypes y excepciones específicas para

comunicarse con la presentación

Presentación: cada ventana en una clase

separada para facilitar el diseño

(28)
(29)

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

Thinking in Java (B. Eckel)

ISBN-13: 978-0131872486, ISBN-10: 0131872486

WindowBuilder

https://www.eclipse.org/windowbuilder/

Referencias

Referencias

Documento similar

✅ TAREA 1: ¿Cuál es la mega-tendencia, mercado, nicho de mercado, sub-nicho y micro-nicho donde desea operar como afiliado. ✅ TAREA 2: ¿Cuál es la transformación, el

En la implementación final, el programa principal ha hecho uso de ambas variables para comunicarse con el subprograma, pasando el número a comprobar a través de la

PROGRAMACIÓN DOCENTE DE LA FACULTAD DE TURISMO - CURSO ACADÉMICO 2020-2021.. HORARIOS DE CLASE

Pero como "el fin egoísta en su rela- ción y condicionado por la generalidad constituye un sistema de correspondencia total, puesto que la sub- sistencia y el bienestar

➢ Presentación del docente encargado de la metodología del curso-taller y de los asesores temáticos. ➢ Presentación del cronograma del curso -taller. ➢ Diferencias entre el

Avner le respondió que cierto año escuchó al Rambán enseñando la parashá Haazinu y destacó que en el canto de Haazinu estaban contenidos todos los preceptos y todo lo que iba a

Los recintos serán una clase de artefactos técnicos (producidos por transformación de materias y productos por medio de otros artefactos) caracterizables como

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones