SlideShare una empresa de Scribd logo
1 de 33
Interfaz gráfica de
usuario y eventos
Tópicos avanzados de programación

M.C. Edgar Omar Bañuelos Lozoya
Instituto Tecnológico de Parral
INTRODUCCIÓN

2
¿GUI?
• Graphical user interface
> Interfaz gráfica de usuario

…programa o entorno que gestiona la interacción con
el usuario con base en relaciones visuales como
iconos, menús o un puntero»

3
4
5
En nuestro caso...

6
Swing & AWT
• ¿Qué son?
– Conjuntos de librerías que agrupan componentes
para desarrollar interfaces gráficas

7
AWT (Abstract Window
ToolKit)
• Fue el primero en Java (y viene en todas sus
versiones)
• Sus componentes se denominan «pesados»
– … dependen de código nativo del sistema
operativo para realizar su funcionalidad

• Su paquete es java.awt

8
Swing
• Implementado «enteramente» en Java
– … no tiene código nativo del sistema operativo

• Sus componentes se denominan «ligeros»
• Los nombres de algunas clases de Swing
inician con la letra «J» para no confundirlas
con las equivalentes en AWT (por ejemplo
JButton y Button)
• Su paquete es javax.swing
9
• Junto con Java 2D (clases para manipular
imágenes y gráficos planos), AWT y Swing
conforman el JFC (Java Foundation Classes)
– … framework para construir interfaces gráficas de
usuario basadas en Java

10
Diagrama jerárquico de clases
para programación GUI en Java

11
Diagrama jerárquico de clases para
programación GUI en Java (cont.)

12
Clasificación GUI
• Se dividen en tres:
1. Contenedores
2. Auxiliares
3. Componentes

13
Clases contenedor
• Son componentes GUI usados para
«contener» otros componentes
• Son contenedores AWT:
– Window, Panel, Applet, Frame y Dialog

• Son contenedores Swing:
– Container, JFrame, JDialog, JApplet, y JPanel

14
Contenedores Swing
• Container
– Usado para agrupar componentes.
– Frames, panels y applets son ejemplos de contenedores

• JFrame
– Es una ventana no contenida dentro de otra ventana.
– Es el componente base para construir las interfaces basadas en Swing

• JDialog
– Es una ventana emergente o de mensaje, usada de manera temporal para
recibir información del usuario o dar alguna notificación

• JApplet
– Es subclase de Applet. Utilizada para crear applets basados en Swing

• JPanel
– Es un contenedor invisible para agrupar componentes de interfaz de usuario.
– Los paneles pueden ser anidados (“uno dentro de otro”)
– Pueden ser utlizados como “lienzo” para dibujar gráficos

15
Actividad
• Utilizando el entorno gráfico de Netbeans:
– Crear un JFrame
– Agregar botones para invocar cada uno de los
tipos de diálogo de la clase JOptionPane

16
Clases auxiliares
• No son subclases de Component
• Son usadas para describir propiedades de
componentes GUI, están en el paquete
java.awt
Nota. Los componentes Swing no reemplazan
todas las clases AWT, sólo las clases de
componentes
GUI
de
AWT
(como
Button, TextField, TextArea,…)
17
Clases auxiliares (cont.)
• Graphics
– Clase abstracta que proporciona un contexto gráfico para dibujar líneas y
figuras simples

• Color
– Trata los colores de los componentes GUI. Útil para especificar fondos, color
de letras o de líneas, figuras, etc.

• Font
– Especifica tipo, estilo y tamaño de letras mostradas en componentes GUI

• FontMetrics
– Clase abstracta utilizada para obtener propiedades de los tipos de letra

• Dimension
– Encapsula el largo y ancho de un componente (en precisión entera)

• LayoutManager
– Es una interface que especifica como son alineados los componentes dentro
de un contenedor

18
Clases componente GUI
• JComponent es la superclase de todos los
componentes Swing
• Como JComponent es una clase abstracta no
es posible usar new JComponent(), es
necesario usar los constructores de las
subclases

19
Clases componente GUI (cont.)
• ¿Cuál sería el resultado de ejecutar el
siguiente fragmento de código?
JButton jbtOK = new JButton("OK");
System.out.println(jbtOK instanceof
System.out.println(jbtOK instanceof
System.out.println(jbtOK instanceof
System.out.println(jbtOK instanceof
System.out.println(jbtOK instanceof
System.out.println(jbtOK instanceof

JButton);
AbstractButton);
JComponent);
Container);
Component);
Object);

True, para todos los casos
20
COMPONENTES GUI

21
Frames

22
Frames (cont.)

import javax.swing.*;
public class MyFrame {
public static void main(String[] args) {
JFrame frame = new JFrame("MyFrame");
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

• El frame no es desplegado hasta que frame.setVisible(true);
es invocado
• frame.setSize(400, 300); especifica el tamaño (400px
ancho, 300px alto), si no es usado el formulario se ajusta sólo hasta
desplegar la barra de título
• setVisible() y setSize() están definidos en la clase Component
y son heredados a JFrame, por lo que estos métodos son utilizados
23
también por otras subclases
Frames (cont.)

• Invocando frame.setLocationRelativeTo(null)el
frame es centrado en la pantalla
• frame.setDefaultCloseOperation(JFrame.EXIT
_ON_CLOSE)le dice al programa que termine cuando se
cierra el formulario, si está opción no se especifica el
programa seguirá en ejecución aún y cuando el formulario se
haya cerrado

24
Frames (cont.)
• Propiedades comunes de un JFrame:
– contentPane
• Panel de contenido del frame

– iconImage
• Imagen que representa el frame, reemplaza la imagen por default de Java
en la barra de título y cuando el frame es minimizado
Image image = (new ImageIcon(Filename)).getImage();
frame.setIconImage(image);

– JMenuBar
• Barra de menú opcional

– resizable
• Valor booleano que indica si el frame puede cambiar de tamaño
frame.setResizable(Value);

– title
• Especifica el título del formulario
frame.setTitle(Title);
25
Frames (cont.)
• Para añadir componentes a un frame utilizar el método
add():
// Añadir un botón al frame
JButton jbtOK = new JButton("OK");
frame.add(jbtOK);

• Este método añade el componente al panel de contenido
del frame.
– El botón sería colocado al centro y ocupando todo el
frame, esto debido al layout manager que el frame tiene por
default

• Puede usarse la siguiente instrucción para remover el
botón:
frame.remove(jbtOK);
26
Actividad
1. Crear en bloc de notas una clase Java de
nombre PruebaFrames
2. En el método principal crear un objeto
formulario con titulo «Mi primer frame en
TAP»
3. Especificar el tamaño a 500px de alto por
400px de ancho
4. Guardar y ejecutar en línea de comandos
¿qué es lo que sucede?
27
Actividad (cont.)
5. Ubicarlo en las coordenadas (0, 0) de la pantalla
6. Hacer visible el frame
7. Guardar y ejecutar
¿qué pasa si cierran el formulario?

8. Comentar la línea de ubicación anterior y agregar lo
necesario para centrar el frame en la pantalla
9. Configurar que la aplicación termine al cerrar el
formulario
10. Guardar y ejecutar
28
Actividad (cont.)
11. Configurar una imagen para mostrar en la
barra de título
12.Establecer que el frame no pueda cambiar de
tamaño
13. Cambiar el título del frame a «Mi primer
frame modificado»
14.Guardar y ejecutar

29
EVENTOS

30
Programación dirigida por eventos
• Imaginen un programa para imprimir los
primeros 100 números de la serie de Fibonacci o
un programa para recibir dos números y escribir
el resultado de su suma
¿quién controla que se ejecutará primero y que
después?
• Ahora imaginen Microsoft Word con un nuevo
documento abierto
¿quién controla la secuencia de ejecución?
31
Programación dirigida por eventos (cont.)
• En este paradigma la estructura como la ejecución de
los programas van determinados por los sucesos que
ocurran en el sistema, generalmente provocados por
el usuario»
• Es la base para el desarrollo de interfaces gráficas de
usuario
• Maneja el concepto de evento y administrador de
eventos:
– Un evento es la señal que indica que sucedió una acción
predeterminada
– Un administrador de eventos es la parte de la aplicación
que se encarga de ejecutar ciertas tareas cuando se ha
detectado un evento en particular
32
Programación dirigida por eventos (cont.)

• Los eventos soportados estarán determinados
por
el
lenguaje
de
programación
utilizado, algunos son heredados por el propio
sistema operativo e incluso otros pueden ser
creados por el mismo programador
• En este tipo de aplicaciones generalmente hay
una fase de inicialización seguida de una fase de
espera a la detección de algún evento que
determine la secuencia de ejecución a seguir
33

Más contenido relacionado

La actualidad más candente

Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencialeidy2220
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Sistemas Operativos Web
Sistemas Operativos WebSistemas Operativos Web
Sistemas Operativos Websheila11
 
Base de datos para la farmacia "José"
Base de datos para la farmacia "José"Base de datos para la farmacia "José"
Base de datos para la farmacia "José"BrandonDanielUgazSal1
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normalITCV
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedioGuillermo
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de javaFaral TF
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de DatosMaJo2308
 
Conexion mysql con java usando netbeans
Conexion mysql con java usando netbeansConexion mysql con java usando netbeans
Conexion mysql con java usando netbeansEmerson Garay
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 
Jerarquia de la memoria
Jerarquia de la memoria Jerarquia de la memoria
Jerarquia de la memoria Fabian Rojas
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Yarquiri Claudio
 
Algebra booleana y circuitos combinatorios
Algebra booleana y circuitos combinatoriosAlgebra booleana y circuitos combinatorios
Algebra booleana y circuitos combinatoriosAndoni Vasquez
 

La actualidad más candente (20)

Cálculo relacional
Cálculo relacionalCálculo relacional
Cálculo relacional
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Sistemas Operativos Web
Sistemas Operativos WebSistemas Operativos Web
Sistemas Operativos Web
 
Base de datos para la farmacia "José"
Base de datos para la farmacia "José"Base de datos para la farmacia "José"
Base de datos para la farmacia "José"
 
Presentación JavaScript
Presentación JavaScriptPresentación JavaScript
Presentación JavaScript
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normal
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Diseño fisico
Diseño fisicoDiseño fisico
Diseño fisico
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Conexion mysql con java usando netbeans
Conexion mysql con java usando netbeansConexion mysql con java usando netbeans
Conexion mysql con java usando netbeans
 
Cubos ppt
Cubos pptCubos ppt
Cubos ppt
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Jerarquia de la memoria
Jerarquia de la memoria Jerarquia de la memoria
Jerarquia de la memoria
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
 
Algebra booleana y circuitos combinatorios
Algebra booleana y circuitos combinatoriosAlgebra booleana y circuitos combinatorios
Algebra booleana y circuitos combinatorios
 

Destacado

Unidad 2 tópicos avanzados de programacion
Unidad 2 tópicos avanzados de programacionUnidad 2 tópicos avanzados de programacion
Unidad 2 tópicos avanzados de programacionIrving Che
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventosKanddy Mobylml
 
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioTopicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioJosé Antonio Sandoval Acosta
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing Laura
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansLaura Folgado Galache
 
Gui interfaz gráfica de usuario javax.swing y java.awt
Gui interfaz gráfica  de usuario javax.swing y java.awtGui interfaz gráfica  de usuario javax.swing y java.awt
Gui interfaz gráfica de usuario javax.swing y java.awtcarlosAhumada_12
 
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)Arturo Salinas
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en javaaleja09_40
 
Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario ivancmontero
 
Tema 13 gráficas en java por gio
Tema 13   gráficas en java por gioTema 13   gráficas en java por gio
Tema 13 gráficas en java por gioRobert Wolf
 
Diseno de Interfaces (2011)
Diseno de Interfaces (2011)Diseno de Interfaces (2011)
Diseno de Interfaces (2011)Victor Tisnado
 
Conceptos Basicos De ProgramacióN Dirigida A Eventos
Conceptos Basicos De ProgramacióN Dirigida A EventosConceptos Basicos De ProgramacióN Dirigida A Eventos
Conceptos Basicos De ProgramacióN Dirigida A Eventosarturoannear
 
Un lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz graficaUn lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz graficaIng-D-SW-TorresKhano--ME
 
GUI historia y evolucion (Hasta el 2008)
GUI historia y evolucion (Hasta el 2008)GUI historia y evolucion (Hasta el 2008)
GUI historia y evolucion (Hasta el 2008)Martwitter Urias
 
Tabla comparativa sistema de información
Tabla comparativa sistema de información Tabla comparativa sistema de información
Tabla comparativa sistema de información vanebrambila
 

Destacado (20)

Unidad 2 tópicos avanzados de programacion
Unidad 2 tópicos avanzados de programacionUnidad 2 tópicos avanzados de programacion
Unidad 2 tópicos avanzados de programacion
 
Eventos en Java
Eventos en JavaEventos en Java
Eventos en Java
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventos
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioTopicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
 
Diferencias swing y awt
Diferencias swing y awtDiferencias swing y awt
Diferencias swing y awt
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con Netbeans
 
Gui interfaz gráfica de usuario javax.swing y java.awt
Gui interfaz gráfica  de usuario javax.swing y java.awtGui interfaz gráfica  de usuario javax.swing y java.awt
Gui interfaz gráfica de usuario javax.swing y java.awt
 
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
 
Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario
 
Tema 13 gráficas en java por gio
Tema 13   gráficas en java por gioTema 13   gráficas en java por gio
Tema 13 gráficas en java por gio
 
Diseno de Interfaces (2011)
Diseno de Interfaces (2011)Diseno de Interfaces (2011)
Diseno de Interfaces (2011)
 
Conceptos Basicos De ProgramacióN Dirigida A Eventos
Conceptos Basicos De ProgramacióN Dirigida A EventosConceptos Basicos De ProgramacióN Dirigida A Eventos
Conceptos Basicos De ProgramacióN Dirigida A Eventos
 
Un lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz graficaUn lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz grafica
 
GUI historia y evolucion (Hasta el 2008)
GUI historia y evolucion (Hasta el 2008)GUI historia y evolucion (Hasta el 2008)
GUI historia y evolucion (Hasta el 2008)
 
Tabla comparativa sistema de información
Tabla comparativa sistema de información Tabla comparativa sistema de información
Tabla comparativa sistema de información
 

Similar a GUI y eventos en Java (20)

D0 gui
D0 guiD0 gui
D0 gui
 
Tema6resumido
Tema6resumidoTema6resumido
Tema6resumido
 
Jfc java
Jfc javaJfc java
Jfc java
 
Lps 15 gu-iconswing
Lps 15 gu-iconswingLps 15 gu-iconswing
Lps 15 gu-iconswing
 
JAVA Interfaz gráfica (GUI)
JAVA Interfaz gráfica (GUI)JAVA Interfaz gráfica (GUI)
JAVA Interfaz gráfica (GUI)
 
Trabajo teórico exposcición
Trabajo teórico exposciciónTrabajo teórico exposcición
Trabajo teórico exposcición
 
S5 p2
S5 p2S5 p2
S5 p2
 
S5-P2.pptx
S5-P2.pptxS5-P2.pptx
S5-P2.pptx
 
Java ventajas y caracteristicas
Java ventajas y caracteristicasJava ventajas y caracteristicas
Java ventajas y caracteristicas
 
Interfaces graficas(1)
Interfaces graficas(1)Interfaces graficas(1)
Interfaces graficas(1)
 
Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01
 
7 y 8. interfaz grafica en java
7 y 8.  interfaz grafica en java7 y 8.  interfaz grafica en java
7 y 8. interfaz grafica en java
 
CLASE SWING
CLASE SWING CLASE SWING
CLASE SWING
 
Programacion.....swing
Programacion.....swingProgramacion.....swing
Programacion.....swing
 
Programacion_II_Interfaz_grafica_guia_I
Programacion_II_Interfaz_grafica_guia_IProgramacion_II_Interfaz_grafica_guia_I
Programacion_II_Interfaz_grafica_guia_I
 
Gu is awt_swing
Gu is awt_swingGu is awt_swing
Gu is awt_swing
 
Clase swing
Clase swingClase swing
Clase swing
 
Jyoc java-cap18 swing y java fx
Jyoc java-cap18 swing y java fxJyoc java-cap18 swing y java fx
Jyoc java-cap18 swing y java fx
 
matlab
matlabmatlab
matlab
 
Introduccion de-aplicaciones-visuales
Introduccion de-aplicaciones-visualesIntroduccion de-aplicaciones-visuales
Introduccion de-aplicaciones-visuales
 

Último

Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 

Último (20)

Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 

GUI y eventos en Java

  • 1. Interfaz gráfica de usuario y eventos Tópicos avanzados de programación M.C. Edgar Omar Bañuelos Lozoya Instituto Tecnológico de Parral
  • 3. ¿GUI? • Graphical user interface > Interfaz gráfica de usuario …programa o entorno que gestiona la interacción con el usuario con base en relaciones visuales como iconos, menús o un puntero» 3
  • 4. 4
  • 5. 5
  • 7. Swing & AWT • ¿Qué son? – Conjuntos de librerías que agrupan componentes para desarrollar interfaces gráficas 7
  • 8. AWT (Abstract Window ToolKit) • Fue el primero en Java (y viene en todas sus versiones) • Sus componentes se denominan «pesados» – … dependen de código nativo del sistema operativo para realizar su funcionalidad • Su paquete es java.awt 8
  • 9. Swing • Implementado «enteramente» en Java – … no tiene código nativo del sistema operativo • Sus componentes se denominan «ligeros» • Los nombres de algunas clases de Swing inician con la letra «J» para no confundirlas con las equivalentes en AWT (por ejemplo JButton y Button) • Su paquete es javax.swing 9
  • 10. • Junto con Java 2D (clases para manipular imágenes y gráficos planos), AWT y Swing conforman el JFC (Java Foundation Classes) – … framework para construir interfaces gráficas de usuario basadas en Java 10
  • 11. Diagrama jerárquico de clases para programación GUI en Java 11
  • 12. Diagrama jerárquico de clases para programación GUI en Java (cont.) 12
  • 13. Clasificación GUI • Se dividen en tres: 1. Contenedores 2. Auxiliares 3. Componentes 13
  • 14. Clases contenedor • Son componentes GUI usados para «contener» otros componentes • Son contenedores AWT: – Window, Panel, Applet, Frame y Dialog • Son contenedores Swing: – Container, JFrame, JDialog, JApplet, y JPanel 14
  • 15. Contenedores Swing • Container – Usado para agrupar componentes. – Frames, panels y applets son ejemplos de contenedores • JFrame – Es una ventana no contenida dentro de otra ventana. – Es el componente base para construir las interfaces basadas en Swing • JDialog – Es una ventana emergente o de mensaje, usada de manera temporal para recibir información del usuario o dar alguna notificación • JApplet – Es subclase de Applet. Utilizada para crear applets basados en Swing • JPanel – Es un contenedor invisible para agrupar componentes de interfaz de usuario. – Los paneles pueden ser anidados (“uno dentro de otro”) – Pueden ser utlizados como “lienzo” para dibujar gráficos 15
  • 16. Actividad • Utilizando el entorno gráfico de Netbeans: – Crear un JFrame – Agregar botones para invocar cada uno de los tipos de diálogo de la clase JOptionPane 16
  • 17. Clases auxiliares • No son subclases de Component • Son usadas para describir propiedades de componentes GUI, están en el paquete java.awt Nota. Los componentes Swing no reemplazan todas las clases AWT, sólo las clases de componentes GUI de AWT (como Button, TextField, TextArea,…) 17
  • 18. Clases auxiliares (cont.) • Graphics – Clase abstracta que proporciona un contexto gráfico para dibujar líneas y figuras simples • Color – Trata los colores de los componentes GUI. Útil para especificar fondos, color de letras o de líneas, figuras, etc. • Font – Especifica tipo, estilo y tamaño de letras mostradas en componentes GUI • FontMetrics – Clase abstracta utilizada para obtener propiedades de los tipos de letra • Dimension – Encapsula el largo y ancho de un componente (en precisión entera) • LayoutManager – Es una interface que especifica como son alineados los componentes dentro de un contenedor 18
  • 19. Clases componente GUI • JComponent es la superclase de todos los componentes Swing • Como JComponent es una clase abstracta no es posible usar new JComponent(), es necesario usar los constructores de las subclases 19
  • 20. Clases componente GUI (cont.) • ¿Cuál sería el resultado de ejecutar el siguiente fragmento de código? JButton jbtOK = new JButton("OK"); System.out.println(jbtOK instanceof System.out.println(jbtOK instanceof System.out.println(jbtOK instanceof System.out.println(jbtOK instanceof System.out.println(jbtOK instanceof System.out.println(jbtOK instanceof JButton); AbstractButton); JComponent); Container); Component); Object); True, para todos los casos 20
  • 23. Frames (cont.) import javax.swing.*; public class MyFrame { public static void main(String[] args) { JFrame frame = new JFrame("MyFrame"); frame.setSize(400, 300); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } • El frame no es desplegado hasta que frame.setVisible(true); es invocado • frame.setSize(400, 300); especifica el tamaño (400px ancho, 300px alto), si no es usado el formulario se ajusta sólo hasta desplegar la barra de título • setVisible() y setSize() están definidos en la clase Component y son heredados a JFrame, por lo que estos métodos son utilizados 23 también por otras subclases
  • 24. Frames (cont.) • Invocando frame.setLocationRelativeTo(null)el frame es centrado en la pantalla • frame.setDefaultCloseOperation(JFrame.EXIT _ON_CLOSE)le dice al programa que termine cuando se cierra el formulario, si está opción no se especifica el programa seguirá en ejecución aún y cuando el formulario se haya cerrado 24
  • 25. Frames (cont.) • Propiedades comunes de un JFrame: – contentPane • Panel de contenido del frame – iconImage • Imagen que representa el frame, reemplaza la imagen por default de Java en la barra de título y cuando el frame es minimizado Image image = (new ImageIcon(Filename)).getImage(); frame.setIconImage(image); – JMenuBar • Barra de menú opcional – resizable • Valor booleano que indica si el frame puede cambiar de tamaño frame.setResizable(Value); – title • Especifica el título del formulario frame.setTitle(Title); 25
  • 26. Frames (cont.) • Para añadir componentes a un frame utilizar el método add(): // Añadir un botón al frame JButton jbtOK = new JButton("OK"); frame.add(jbtOK); • Este método añade el componente al panel de contenido del frame. – El botón sería colocado al centro y ocupando todo el frame, esto debido al layout manager que el frame tiene por default • Puede usarse la siguiente instrucción para remover el botón: frame.remove(jbtOK); 26
  • 27. Actividad 1. Crear en bloc de notas una clase Java de nombre PruebaFrames 2. En el método principal crear un objeto formulario con titulo «Mi primer frame en TAP» 3. Especificar el tamaño a 500px de alto por 400px de ancho 4. Guardar y ejecutar en línea de comandos ¿qué es lo que sucede? 27
  • 28. Actividad (cont.) 5. Ubicarlo en las coordenadas (0, 0) de la pantalla 6. Hacer visible el frame 7. Guardar y ejecutar ¿qué pasa si cierran el formulario? 8. Comentar la línea de ubicación anterior y agregar lo necesario para centrar el frame en la pantalla 9. Configurar que la aplicación termine al cerrar el formulario 10. Guardar y ejecutar 28
  • 29. Actividad (cont.) 11. Configurar una imagen para mostrar en la barra de título 12.Establecer que el frame no pueda cambiar de tamaño 13. Cambiar el título del frame a «Mi primer frame modificado» 14.Guardar y ejecutar 29
  • 31. Programación dirigida por eventos • Imaginen un programa para imprimir los primeros 100 números de la serie de Fibonacci o un programa para recibir dos números y escribir el resultado de su suma ¿quién controla que se ejecutará primero y que después? • Ahora imaginen Microsoft Word con un nuevo documento abierto ¿quién controla la secuencia de ejecución? 31
  • 32. Programación dirigida por eventos (cont.) • En este paradigma la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, generalmente provocados por el usuario» • Es la base para el desarrollo de interfaces gráficas de usuario • Maneja el concepto de evento y administrador de eventos: – Un evento es la señal que indica que sucedió una acción predeterminada – Un administrador de eventos es la parte de la aplicación que se encarga de ejecutar ciertas tareas cuando se ha detectado un evento en particular 32
  • 33. Programación dirigida por eventos (cont.) • Los eventos soportados estarán determinados por el lenguaje de programación utilizado, algunos son heredados por el propio sistema operativo e incluso otros pueden ser creados por el mismo programador • En este tipo de aplicaciones generalmente hay una fase de inicialización seguida de una fase de espera a la detección de algún evento que determine la secuencia de ejecución a seguir 33