Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• En Java, una forma de asegurar que los objetos siempre contengan valores
válidos es escribir un constructor. Un constructor es un método especial de
una clase que es llamado automáticamente siempre que se crea un objeto de
la misma.
2
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 1 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
4
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 2 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
• De la misma forma que existe un método que se ejecuta automáticamente cada vez que se construye
un objeto, también existe un método que se invoca automáticamente cada vez que se destruye. Este
método recibe el nombre genérico de destructor y en el caso concreto de Java se corresponde con el
método finalize.
6
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 3 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
8
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 4 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Recolección de basura - 10 -
10
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 5 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
11
12
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 6 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
13
Objeto de la
clase externa Objeto de la
clase interna
14
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 7 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
• Si una clase interna está asociada con un objeto, lógicamente no puede tener
miembros static.
Objeto de la
clase externa Objeto de la
clase interna
15
16
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 8 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
17
package clasesInternas;
import java.util.*;
18
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 9 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
19
20
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 10 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
21
@Override
public String toString() {
return "Nombre: " + getNombre();
}
22
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 11 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
23
package clasesInternas;
import java.util.*;
public class Persona {
public class Fecha {
private int dia;
private int mes;
private int año;
24
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 12 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
@Override
public String toString() {
return dia + "/" + mes + "/" + año;
}
25
26
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 13 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
27
28
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 14 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
package clasesInternas;
import java.util.*;
29
30
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 15 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
31
32
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 16 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
package clasesInternas;
33
public void setFechaNacimiento(final int dia, final int mes, final int año) {
fechaNacimiento = new Fecha(dia, mes, año) {
@Override
public String toString() {
return mes + "/" + dia + "/" + año;
}
};
}
@Override
public String toString() {
return "Nombre: " + getNombre() +
"\nFecha de nacimiento: " + getFechaNacimiento();
}
public static void main(String[] args) {
Persona persona = new Persona();
persona.setNombre("Patricia");
persona.setFechaNacimiento(21, 1, 1990);
System.out.println("\nDatos de persona:\n" + persona.toString());
}
}
34
Experiencia Curricular: Programación Orientada a Objetos I Tema: Ciclo de Vida y Clases
Docente: Ms. Zoraida Yanet Vidal Melgarejo Internas. Página - 17 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Excepciones -2-
2
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 1 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Excepciones -3-
• Algunas de las excepciones son causadas por errores del usuario, otras por
error del programador, y otras por los recursos físicos que han fallado de
alguna manera.
• Las excepciones son manejadas por código fuera del flujo normal de control
del programa.
Excepciones -4-
4
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 2 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Este bloque de código también desea acceder al elemento de índice 5 que no tiene ninguna referencia,
pero a diferencia del anterior, este suceso ha sido previsto y se muestra un mensaje al usuario
indicando que no hay elementos en el arreglo y la ejecución del programa termina de manera natural.
6
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 3 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
8
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 4 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
10
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 5 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Clasificación de Excepciones - 11 -
• No verificadas en compilación:
Situaciones inesperadas de programación difíciles de
prever.
• Verificadas en compilación:
Situaciones predecibles y que pueden ser controladas.
11
Clasificación de Excepciones - 12 -
12
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 6 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Clasificación de Excepciones - 13 -
13
Clasificación de Excepciones - 14 -
14
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 7 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Clasificación de Excepciones - 15 -
15
Manejo de Excepciones - 16 -
16
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 8 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Manejo de Excepciones - 17 -
1. Bloque try…catch
• Se utiliza para capturar las excepciones que se han podido
producir en el bloque de código delimitado por try y catch.
• En cuanto se produce la excepción, la ejecución del bloque try,
que la contiene, termina. La cláusula catch recibe como
argumento un objeto Throwable.
• try: Es el bloque de código donde se prevé que se genere una
excepción. El bloque try tiene que ir seguido, al menos, por una
cláusula catch o una cláusula finally.
• catch: Es el código que se ejecuta cuando se produce la
excepción. No hay código alguno entre un bloque try y un bloque
catch, ni entre bloques catch.
17
Manejo de Excepciones - 18 -
• Flujo de ejecución:
Sin excepciones : 1->2->4
Con una excepción en el bloque 2 : 1->2*->3->4
Con una excepción en el bloque 1 : 1*
18
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 9 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Manejo de Excepciones - 19 -
19
Manejo de Excepciones - 20 -
• Flujo de ejecución:
Sin excepciones : 1->2->5
Excepción de tipo aritmético en el bloque 2 : 1->2*->3->5
Acceso a un objeto nulo (null) en el bloque 2 : 1->2*->4->5
Excepción de otro tipo diferente en el bloque 2 : 1->2*
20
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 10 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Manejo de Excepciones - 21 -
3. La cláusula finally
• En ocasiones, nos interesa ejecutar un fragmento de código
independiente de si se produce o no una excepción (por ejemplo,
cerrar un archivo que estemos manipulando o una conexión a
una fuente de datos).
21
Manejo de Excepciones - 22 -
• Flujo de ejecución:
Sin excepciones : 1->2->4->5
Excepción de tipo aritmético en el bloque 2 : 1->2*->3->4->5
Excepción de otro tipo diferente en el bloque 2 : 1->2*->4
22
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 11 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Manejo de Excepciones - 23 -
try {
// Sentencias que pueden generar la excepción
} catch(ExcepcionCapturada referencia) {
// Sentencias que responden a la excepción
} finally {
// Sentencias que se ejecutan siempre
}
23
Manejo de Excepciones - 24 -
try {
//Sentencias
} catch(ExcepcionCapturada referencia) {
//Sentencias
} try {
//Sentencias
} finally {
//Sentencias
}
24
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 12 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Manejo de Excepciones - 25 -
try {
//Sentencias
} catch(ExcepcionCapturada1 referencia) {
//Sentencias
} catch(ExcepcionCapturada2 referencia) {
//Sentencias
} catch(ExcepcionCapturada3 referencia) {
//Sentencias
} finally {
//Sentencias
}
25
Manejo de Excepciones - 26 -
try {
//Sentencias
} catch(ExcepcionCapturada1 referencia) {
//Sentencias
} catch(ExcepcionCapturada2 referencia) {
//Sentencias
} catch(ExcepcionCapturada3 referencia) {
//Sentencias
}
26
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 13 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Ejemplo:
27
28
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 14 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
29
30
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 15 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Excepciones personalizadas - 31 -
• En general, se creará un nuevo tipo de excepción cuando se requiera manejar un determinado tipo
de situación excepcional no contemplada por las excepciones proporcionadas por la biblioteca de
Java.
• Todos los tipos de excepción se corresponden con una clase derivada de Throwable, clase raíz de la
jerarquía de clases de excepciones en Java.
• El programador puede definir sus propias clases de excepciones, definiendo una clase que herede
de Throwable o generalmente de Exception.
31
Excepciones personalizadas - 32 -
public MiException() { }
32
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 16 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Excepciones personalizadas - 33 -
33
Resumen - 34 -
34
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 17 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
2
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 1 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Barra
de
menú
Marco de
Barra de la ventana
herramientas
Barra de Barras de
estado desplazamiento
Área de trabajo
4
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 2 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
6
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 3 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
8
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 4 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Biblioteca JFC - 10 -
10
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 5 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Formularios - 11 -
Una aplicación con una interfaz gráfica trabaja estableciendo entre los
objetos que componen la misma una comunicación mediante mensajes,
los cuales son producidos por eventos. Cuando un mensaje llega a un
objeto, éste tiene que procesarlo.
11
Formularios - 12 -
12
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 6 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Formularios - 13 -
Comienzo Método 1
Método 2
Recuperar Entregar
siguiente información del
evento evento
Método 3
Método 4
No
¿Salir?
Si
Fin
13
Manejo de Eventos - 14 -
• El programador debe realizar dos tareas clave para procesar un evento de interfaz gráfica de
usuario en un programa: debe registrar un componente de escucha del evento para el componente
de la GUI que se espera genere ese evento, y debe implementar un método manejador del evento (o
un conjunto de métodos manejadores del evento).
• Cada interfaz de componente de escucha de eventos especifica uno o más métodos manejadores de
eventos que deben declararse en la clase que implemente a la interfaz de componente de escucha de
eventos. El uso de componentes de escucha de eventos en el manejo de eventos se conoce como el
modelo de delegación de eventos: el procesamiento de un evento se delega a un objeto específico (el
componente de escucha) en el programa.
14
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 7 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Manejo de Eventos - 15 -
• Cuando ocurre un evento, el componente de la GUI con el que el usuario interactuó notifica a sus
componentes de escucha registrados, llamando al método manejador de eventos apropiado de cada
componente de escucha. Por ejemplo, cuando el usuario oprime la tecla Enter (evento ocurrido) en
un objeto JTextField (Componente), se hace una llamada al manejador de eventos actionPerformed
(método) del componente ActionListener (componente de escucha registrado).
15
Manejo de Eventos - 16 -
evento
Componente Componente de
ocurrido Escucha
Método
(respuesta al evento)
16
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 8 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
• Cada vez que el usuario escribe un carácter, oprime un botón del mouse, hace un movimiento con el
cursor del mouse, presiona una combinación de teclas, ocurre un evento.
• El objeto que recibe el evento (un botón, un área de texto, un panel, una lista, entre otros), es
notificado en tiempo de ejecución de que recibió el evento.
• Todo lo que se debe hacer es implementar la interfaz apropiada y registrarla como un escucha en el
componente GUI apropiado.
17
18
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 9 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
• Cuando un usuario hace clic sobre un botón o presiona la tecla Enter mientras digitaba en una caja
de texto o elige una opción de un menú, se genera un evento, que tiene los siguientes elementos:
✓ La fuente del evento (event source): Es el componente que origina el evento.
✓ El escuchador: (event listener) es el encargado de atrapar o escuchar el evento.
✓ El manejador del evento (event handler), es el método que permite implementar la interfaz,
es decir el escuchador. Este método:
➢ Recibe un objeto evento el cuál tiene información sobre el evento que sucedió,
➢ Descifra el evento, con dicho objeto, y
➢ Procesa lo solicitado por el usuario.
19
1. En la declaración de la clase que maneja el evento (event handler), se debe indicar que
implementa la interfaz correspondiente al evento (ABCListener, donde ABC es el tipo de
evento a observar o escuchar).
La clase puede implementar mas de un ABCListener. Si la clase no implementa la interfaz puede
ser que extienda a una clase que sí la implementa.
20
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 10 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
2. En los componentes que son la fuente del evento se registra una instancia del manejador del
evento, como un observador o escucha del tipo de evento que maneja (ABCListener). Es decir, se le
dice al componente que va a escuchar los eventos del tipo del manejador.
componente.addActionListener(instancia_de_miClaseListener);
21
3. En la clase que maneja el evento (event handler) se deben implementar los métodos de la
interface ABCListener que descifren el evento (ABCEvent) y lo procesen.
22
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 11 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
ACTIONLISTENER
• Cuando un usuario hace clic sobre un botón o presiona la tecla Enter mientras digita en una caja
de texto o elige una opción de un menú, se genera un evento ActionEvent y un mensaje
actionPerformed se envía a todos observadores o escuchas (los componentes), que implementan
la interfaz ActionListener, registrados en el componente.
2
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 1 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
COMPONENTLISTENER
• Es un objeto que genera uno o más eventos justo después de que el componente haya sido
ocultado, hecho visible, movido o redimensionado.
• Uno o más eventos se disparan o activan después que un componente es escondido, se hace
visible, es movido ó se cambia su tamaño.
4
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 2 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
ITEMLISTENER
• Los eventos ItemEvent son disparados o activados por componentes que implementan la interfaz
ItemSelectable. Estos componentes mantienen un estado on/off para uno o más items u opciones.
6
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 3 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
MOUSELISTENER
• Los eventos MouseEvent le informan cuando el usuario utiliza el mouse para interactuar con un
componente.
• Ocurren cuando el cursor entra o sale del área del componente en la ventana y cuando el usuario
oprime o libera el botón del mouse.
• La interface MouseListener y su correspondiente clase adaptadora MouseAdapter, contienen los
siguientes métodos:
void mouseClicked (MouseEvent eve)
void mousePressed (MouseEvent eve)
void mouseReleased (MouseEvent eve)
void mouseEntered (MouseEvent eve)
void mouseExited (MouseEvent eve)
MOUSEMOTIONLISTENER
• Los eventos MouseMotion informan cuando el usuario mueve el cursor encima del componente.
• La interface MouseMotionListener y su correspondiente clase adaptadora MouseMotionAdapter,
contienen los siguientes métodos:
void mouseMoved(MouseEvent eve)
void mouseDragged(MouseEvent eve)
• La clase MouseInputAdapter implementa MouseListener y MouseMotionListener.
8
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 4 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
KEYLISTENER
• Los eventos del teclado nos dicen cuando un usuario presiona o libera una tecla. Existen 2 tipos
de Eventos:
• Digitar un carácter Unicode (keyTyped)
• Presionar/liberar una tecla (keyPressed)
• Para que se active uno de los eventos el componente debe tener el foco:
void keyTyped (KeyEvent eve)
void keyPressed (KeyEvent eve)
void keyReleased (KeyEvent eve)
10
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 5 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
FOCUSLISTENER
• Cuando un componente recibe el foco, es decir, es el elemento de la pantalla que está activo se
producen eventos de tipo FocusEvent.
• Para hacer que un objeto pueda escuchar este tipo de eventos deberá implementar la interface
FocusListener, y además deberá añadir el método:
public void addFocusListener (FocusListener fl)
• Los métodos de esta interfaz son:
• public void focusGained( FocusEvent e)
• public void focusLost( FocusEvent e)
11
CONTAINERLISTENER
• Los eventos ContainerEvent son disparados o activados después que un componente es agregado o
removido del contenedor.
• Estos eventos son usados sólo para notificar que se presentó la adición o remoción del
componente, no es necesario el ContainerListener para que los componentes puedan ser agregados
o removidos.
12
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 6 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
13
WINDOWLISTENER
• Los eventos de Ventanas son disparados o activados cuando una ventana es abierta, cerrada,
iconificada (iconified), desconificada (deiconified), activada o desactivada.
• Los usos más comunes, son por ejemplo, usar un WindowListener, cuando el usuario cierra una
ventana, para preguntar si desea salvar los cambios o si es la última ventana cerrada para salir del
programa. Por defecto cuando un usuario cierra una ventana esta se vuelve invisible.
14
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 7 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
• void windowActivated(WindowEvent e)
Se invoca cuando la ventana está configurada para ser una ventana activa.
• void windowClosed(WindowEvent e)
Se invoca cuando una ventana se ha cerrado cuando se pulsa en una forma de cierre que la misma
contiene.
• void windowClosing(WindowEvent e)
Se invoca cuando el usuario intenta cerrar la ventana desde un método de cierre propio de la ventana.
• void windowDeactivated(WindowEvent e)
Se invoca cuando una ventana ya no está activa.
• void windowDeiconified(WindowEvent e)
Se invoca cuando una ventana se cambia de un minimizado a un estado normal.
• void windowIconified(WindowEvent e)
Se invoca cuando una ventana se cambia de una normal a un estado minimizado.
• void windowOpened(WindowEvent e)
Se invoca la primera vez que una ventana se hace visible.
15
Clases Adaptadoras - 16 -
16
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 8 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Clases Adaptadoras - 17 -
17
Clases Adaptadoras - 18 -
• Por ello existe una clase adaptadora por cada interface listener que tiene
más de un método: MouseAdapter, WindowAdapter, KeyAdapter,
MouseMotionAdapter, FocusAdapter, ContainerAdapter y
ComponentAdapter, etc.
• Las clases adaptadoras implementan los métodos de la interface
correspondiente como vacíos
18
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 9 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Clases Adaptadoras - 19 -
ComponentAdapter ComponentListener
ContainerAdapter ContainerListener
FocusAdapter FocusListener
KeyAdapter KeyListener
MouseAdapter MouseListener
MouseMotionAdapter MouseMotionListener
WindowAdapter WindowListener
19
Contenedores - 20 -
20
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 10 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Contenedores - 21 -
marco
panel
etiqueta
botón
21
Contenedores - 22 -
22
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 11 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Arquitectura Modelo-Vista-Controlador - 23 -
23
Arquitectura Modelo-Vista-Controlador - 24 -
eventos
controlador
vista modelo
24
Experiencia Curricular: Programación Orientada a Objetos I Tema: Interfaz Gráfica de Usuario 2.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 12 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Programa de Estudios: Ingeniería de Sistemas
Arquitectura Modelo-Vista-Controlador - 25 -
25