Unidad 2 - Lenguaje de Programación de La WEB I

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 71

LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Lenguaje de Programación de la WEB I

Manejo de Eventos
Adivina si puedes, Elige si te atreves
Pierre Cornielle
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos

OBJETIVO

Comprender como manejar los eventos generados por la


maquina virtual de java en el manejo de los
componentes gráficos en la construcción de la GUI
para la correcta ejecución de las aplicaciones y los
applets.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Componente JFormatedTextField
• El componente JFormattedTextField es común usarlo para validar las
entradas de datos del usuario, evitando hacer transformaciones de
cadena de caracteres a numéricos y viceversa.

JFormattedTextField miCampoTexto = new JFormattedTextField (new


Integer(3));
Otra Forma
JFormattedTextField miCampoTexto = new JFormattedTextField ();
miCampoTexto.setValue( new Integer(3) );

 Para obtener el valor del campo de texto sólo debemos hacer:


Integer valor = miCampoTexto.getValue();
 Para obtener el texto del componente JFormatedTextField
utilizamos el método getText()
 Para colocar un texto el método setText(String Texto)

Nota: Si el usuario escribe letras, entonces el método getValue() nos


devolverá el último valor bueno conocido y el JFormattedTextField
modificará su contenido para mostrar ese último valor.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Componente JFormatedTextField
• Usar una máscara con el JFormattedTextField
Si usamos un JFormattedTextField con máscara, entonces no podremos
escribir nada fuera de esa máscara.
MASCARA
CARÁCTER DESCRIPCIÓN
# Cualquier dígito. Usa Character.isDigit.
U Cualquier letra (Character.isLetter). Las minúsculas se
convierten en mayúsculas
L Cualquier letra (Character.isLetter). Las mayúsculas se
convierten en minúsculas
A Cualquier letra o número.
(Character.isLetter ó Character.isDigit)
? Cualquier letra (Character.isLetter).
* Cualquier caracter.
H Cualquier caracter hexadecimal (0-9, a-f or A-F).

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplos - Componente JFormatedTextField


• Ejemplo:
try {
MaskFormatter mascara = new MaskFormatter("##.##");
JFormattedTextField fldNota = new JFormattedTextField(mascara);
fldNota.setValue ( new Float("12.34") );
}
catch (Exception e) {
... Importar
} javax.swing.text.MaskFormatter

Ejemplo: Crear un JFormattedTextField para fechas


// Se crea un formato de tipo fecha
DateFormat formato = DateFormat.getDateInstance();
// Se crea el campo y se le coloca el formato como mascara
JFormattedTextField fldFecha = new JFormattedTextField ( formato );
// Desactivamos la edición de la fecha
fldFecha.setEditable(false);
//Muestra la fecha de hoy Importar
fldFecha.setValue(new Date()); java.text.DateFormat

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplos - Componente JFormatedTextField


• Ejemplo: Formato Numérico con mínimo y máximo valor
// Creamos un formato decimal con la clase DecimalFormat
DecimalFormat fn = new DecimalFormat( "#.00” );
// Creamos un objeto de formato numérico para la validación de la
entrada
NumberFormatter formato = new NumberFormatter ( fn );
// Al objeto formato le especificamos sus características
formato.setValueClass ( Double.class );
formato.setMinimum ( new Double(0.0) );
formato.setMaximum ( new Double(40000.0) );
formato.setAllowsInvalid ( false );
formato.setOverwriteMode(true); // Permite Sobreescritura
// Creamos el campo sueldo con el formato numérico Double
JFormattedTextField fldSueldo = new JFormattedTextField ( formato );
// Alineamos el campo numérico a la derecha
fldSueldo.setHorizontalAlignment ( JFormattedTextField.TRAILING );
fldSueldo.setValue(new Double(0.0)); // Le damos un valor inicial
fldSueldo.setColumns(7); // Le establecemos el ancho del campo
Importar javax.swing.text.NumberFormatter y
java.text.DecimalFormat
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Imágenes – Método Usando Toolkit


• Un Toolkit es un conjunto de herramientas que nos permiten obtener
imagenes, y el tamaño de la pantalla, entre otras cosas. Además
debemos utilizar la clase Image para obtener algunas funciones útiles
al manejar imágenes. Importar java.awt.ToolKit;
• Crear un objeto Toolkit:
Toolkit tk = Toolkit.getDefaultToolkit();

• Utilizamos el método getImagen de la clase Toolkit para crear


imágenes, el cual recibe la dirección URL de la imagen (getResource() )
Image miImagen = tk.getImage(Ejercicio.class.getResource ( path ) );
Donde path es un String con el nombre físico de la imagen.

• Usamos el constructor de ImageIcon para colocarle el icono al


componente
Icon elIcono = new ImageIcon( miImagen) );

• Establecemos el icono del componente con el método setIcon()


elComponente.setIcon(elIcono);

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Imágenes – Métodos getScaledInstance

• El método getScaledInstance de la clase Image permite obtener una


imagen de un ancho, alto y calidad especificados, lo que es muy útil en caso
de querer que las imágenes a mostrar tengan el mismo tamaño.

getScaledInstance(int ancho, int alto, int escala)

• Mientras mayor sea la calidad de la imagen a escala más se tardará en


crearla el método. Los principales valores que podemos mandar, de mayor a
menor calidad son:

Image.SCALE_SMOOTH
Image.SCALE_DEFAULT
Image.SCALE_FAST

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Imágenes – Ejemplo


Ejemplo:

Toolkit tk = Toolkit.getDefaultToolkit( );
Image miImagen = tk.getImage(Ejercicio.class.getResource ( “persona.gif” ));
int ancho = elComponente.getWidth( );
int alto = elComponente.getHeight( );
Icon elIcono = miImagen.getScaledInstance(ancho,
getScaledInstance alto,Image.SCALE_SMOOTH);
ImageIcon ico = new ImageIcon( elIcono);
elComponente.setIcon ( ico );

Otra Forma:
Toolkit tk = Toolkit.getDefaultToolkit( );
Image miImagen = tk.getImage(Ejercicio.class.getResource ( “persona.gif” ) );
elComponente.setIcon(new ImageIcon(miImagen.getScaleInstance(64,

64,
Image.SCALE_SMOOTH) );
Nota: Para agregar componentes (botones) a una barra de herramientas y
mejorar su apariencia, debemos utilizar los siguientes métodos:

elComponente.setBorderPainted ( false ); // Quita el borde del componente


elComponente.setMargin(new Insets(0, 0, 0, 0)); // Quita en margen

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos de las GUIs

• Cuando el usuario del programa interactúa con la GUI (escribe un


carácter o hace clic en un botón), la máquina virtual de Java (JVM)
genera un evento.

• Algunos Eventos:
 Mover el ratón
 Hacer clic con los botones del ratón
 Hacer clic en un botón de la pantalla
 Escribir en un campo de texto
 Seleccionar un elemento de un menú
 Cerrar una ventana

• Cuando ocurre una interacción con el usuario, se envía mensaje al


programa. La información de los eventos GUIs es guardada en un
objeto de una clase que extiende a awt.Event.
• El paquete java.awt.event se utiliza para eventos de los
componentes de AWT y Swing, y javax.swing.event solo para los
específicos de Swing.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Mecanismo para el Manejo de Eventos

• Elementos de los Eventos:

 El origen del evento:


Componente de la GUI que interactúa con el usuario
 El objeto de evento:
Este encapsula (almacena) la información del evento que ocurrió
 El componente de Escucha:
Es un objeto que recibe una notificación (además del objeto del
evento) del origen del evento cuando este ocurre, y se ejecuta
una respuesta a ese evento. Son objetos de clases que
implementan interfases de escuchas de eventos (java.awt.event
y java.swing.event)

• Tareas de Programador:
 Registrar un componente de escucha para cada componente de
la GUI
 Implementar un método (o conjunto de métodos ) en el
manejador de eventos

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Comportamiento de los Componentes


 Un componente dispara o activa los manejadores dependiendo del
tipo de evento que ha ocurrido.

 Un componente puede tener registrado más de un manejador que


maneja el mismo tipo de evento.

 Un evento puede ser observado o escuchado por más de un


manejador de eventos.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos - Campos de Texto - ActionListener


Manejo de Eventos:
1. Se declara una clase interna (private) para implementar la interfaz
ActionListener para manejar los eventos.
private class ManejaTexto implements ActionListener {

}
2. La clase ManejaTexto debe implementar el método actionPerformed
para ejecutarse cuando el usuario presione ENTER en un campo de
texto y procesar el evento ActionEvent.
private class ManejaTexto implements ActionListener {
public void actionPerformed (ActionEvent evento) {
// Aquí es donde se programa el evento.
}
}
2. Debemos instanciar la clase ManejaTexto y obtener un objeto.
ManejaTexto manejaEventoTexto = new ManejaTexto();
4. A cada campo de texto debemos adicionarle con el método
addActionListener () el objeto manejaEventoTexto. Ejemplo:
fldCédula.addActionListener ( manejaEventoTexto );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos - Campos de Texto - ActionListener


• Método: evento.getSource()
Permite determinar el componente de la GUI que interactuó con el
usuario, es decir, retorna el componente donde se produjo el evento.
Donde evento es un objeto ActionEvent

• Método: campoTexto.getActionCommand ()
Devuelve el texto (etiqueta) del objeto “JTextField” que genero el
evento.

• Método: campoTexto.getPassword ()
Devuelve el texto del objeto (etiqueta) JPasswordField que genero el
evento.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo - Manejo de Eventos – JTextField


fldNombre = new JTextField( "Escriba el nombre aquí”, 20);
fldClave = new JPasswordField (10 );
// registrar manejadores de eventos
ManejadorCampoTexto manejador = new ManejadorCampoTexto( );
// Adicionamos el manejador a los componentes
fldNombre.addActionListener( manejador ); Interfase
fldClave.addActionListener( manejador ); ActionListerner
// clase interna privada para el manejo de eventos
private class ManejadorCampoTexto implements ActionListener {
// procesar eventos de campo de texto cuando se presiona ENTER
public void actionPerformed( ActionEvent evento ) {
String cadena = "";
if ( evento.getSource() == fldNombre )
cadena = “Nombre: " + evento.getActionCommand( );
if ( evento.getSource() == fldClave )
cadena = “Clave: " + new
String( fldClave.getPassword( ) );
JOptionPane.showMessageDialog( null,
Devuelve el cadena,"Resultados", JOptionPane.CANCEL_OPTION);
} componente que Devuelve la etiqueta
} produjo el evento Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo - Manejo de Eventos – JFormattedTextField


fldNumero = new JFormattedTextField (formatoValidacíon);
fldNumero.setValue(new Integer(0)); // Le damos un valor inicial
fldNumero.setColumns(4); // Le establecemos el ancho del campo
// registrar manejadores de eventos
ManejadorCampoTexto manejador = new ManejadorCampoTexto( );
// Adicionamos el manejador a los componentes
fldNumero.addActionListener( manejador ); Interfase
// clase interna privada para el manejo de eventos ActionListerner
private class ManejadorCampoTexto implements ActionListener {
// procesar eventos de campo de texto cuando se presiona ENTER
public void actionPerformed( ActionEvent evento ) {
// obtenemos un objeto con el valor que tiene el campo de texto
Object oValor = fldNumero.getValue();
// Transformamos luego a String
String valorString = oValor1.toString();
// Luego, los transformamos de String a int (Entero Primitivo)
int numero = Integer.parseInt(valorString1);
// Luego, podemos manipular el valor almacenado en el campo

}
Devuelve el valor como
} un objeto Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Teclas Rápidas
Teclas Rápidas - JTextField

Permiten seleccionar cualquier componente editable de la interfaz gráfica


con el teclado, sin usar el ratón.Debemos importar la clase.
java.awt.event.KeyEvent;

// Asocia una etiqueta JLabel con un campo de texto JTextField.


lblNombre.setLabelFor ( fldNombre );
// La combinación para seleccionar fldNombre es Alt+N.
lblNombre.setDisplayedMnemonic ( KeyEvent.VK_N );

Teclas Rápidas – JButton - JRadioButton


// La combinación para seleccionar al botón btnProcesar es Alt+P.
btnProcesar.setMnemonic ( KeyEvent.VK_P );
radMasculino.setMnemonic ( KeyEvent.VK_M );
radFemenino.setMnemonic ( KeyEvent.VK_F );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JButton - ActionListener


Manejo de Eventos (Es análogo a los Campos de Texto):
1. Se declara una clase interna (private) para implementar la interfaz
ActionListener para manejar los eventos.
private class ManejaBoton implements ActionListener {

}
2. La clase ManejaBoton debe implementar el método actionPerformed
para ejecutarse cuando el usuario active un botón con el teclado o
con clic del mouse y procesar el evento ActionEvent.
private class ManejaBoton implements ActionListener {
public void actionPerformed (ActionEvent evento) {
// Aquí es donde se programa el evento.
}
}
2. Debemos instanciar la clase ManejaBoton y obtener un objeto.
ManejaBoton manejaEventoBoton = new ManejaBoton();
4. A cada botón debemos adicionarle con el método
addActionListener( ) el objeto manejaEventoBoton. Ejemplo:
btnCalcular.addActionListener ( manejaEventoBoton );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo Manejo de Eventos – JButton


JButton btnCalcular = new JButton( “Calcular”);

// registrar el manejador de evento


ManejadorBoton miManejador = new ManejadorBoton( );
// Adicionamos el manejador al componente
btnCalcular.addActionListener( miManejador );

// clase interna privada para el manejo de eventos


private class ManejadorBoton implements ActionListener {
// procesar eventos del botón cuando hace clic o se presiona ENTER
public void actionPerformed( ActionEvent evento ) {
String cadena = "";
if ( evento.getSource() == btnCalcular )
cadena = “Se presiono: " +
evento.getActionCommand( );
JOptionPane.showMessageDialog( null,
cadena,"Resultados", JOptionPane.CANCEL_OPTION);
}
} Devuelve el componente Devuelve la etiqueta del botón
que produjo el evento
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JRadioButton - ActionListener


Manejo de Eventos (Es análogo a los Campos de Texto):
1. Se declara una clase interna (private) para implementar la interfaz
ActionListener para manejar los eventos.
private class ManejaRadioButton implements ActionListener {

}
2. La clase ManejaRadioButton debe implementar el método
actionPerformed para ejecutarse cuando el usuario active un
JRadioButton con el teclado o con clic del mouse y procesar el evento
ActionEvent.
private class ManejaRadioButton implements ActionListener {
public void actionPerformed (ActionEvent evento) {
// Aquí es donde se programa el evento.
}
}
2. Debemos instanciar la clase ManejaRadioButton y obtener un objeto.
ManejaRadioButton manejaEvento = new ManejaRadioButton ();
4. A cada componente JRadioButton debemos adicionarle con el método
addActionListener( ) el objeto manejaEvento . Ejemplo:
radMasculino.addActionListener ( manejaEvento );
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo Manejo de Eventos – JRadioButton


JRadioButton radMasculino = new JRadioButton ( “Masculino” );
JRadioButton radFemenino = new JRadioButton ( “Femenino” );
// Luego, Agregamos los JRadioButton al contenedor
Container contenedor = getContentPane ( );
contenedor.add ( radMasculino );
contenedor.add ( radFemenino );
// Creamos un Grupo de Botones y los adicionamos ( relación lógica )
ButtonGroup grupoBotones = new ButtonGroup ( );
grupoBotones.add (radMasculino );
grupoBotones.add (radFemenino );
// Creamos el objeto miManejador
ManejaRadioListener miManejador = new ManejaRadioListener( );
radMasculino.addActionListener( miManejador );
radFemenino.addActionListener( miManejador ); Devuelve la
// Creamos la clase private etiqueta del
Private class ManejaRadioListener implements ActionListener {
public void actionPerformed ( ActionEvent evento) {
botón
String Cadena = “”;
if (evento.getSource== radMasculino )
cadena = “Se presiono: " + evento.getActionCommand( );
JOptionPane.showMessageDialog( null,
cadena,"Resultados", JOptionPane.CANCEL_OPTION);
}
} Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JComboBox - ActionListener


Manejo de Eventos (Es análogo a los Campos de Texto):
1. Se declara una clase interna (private) para implementar la interfaz
ActionListener para manejar los eventos.
private class ManejaComboBox implements ActionListener { …
}
2. La clase ManejaComboBox debe implementar el método
actionPerformed para ejecutarse cuando el usuario active un
JComboBox con el teclado o con clic del mouse y procesar el evento
ActionEvent.
private class ManejaComboBox implements ActionListener {
public void actionPerformed (ActionEvent evento) {
// Aquí es donde se programa el evento.
}
}
2. Debemos instanciar la clase ManejaComboBox y obtener un objeto.
ManejaComboBox manejaEvento = new ManejaComboBox ();

4. A cada componente JComboBox debemos adicionarle con el método


addActionListener( ) el objeto manejaEvento. Ejemplo:
cmbColor.addActionListener ( manejaEvento );
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo 1- Manejo de Eventos – JComboBox


String arrMedida [ ] = {“Centimetro”, “Metro”, “Kilometro”};
JCombobox cmbMedida = new JCombobox (arrMedida );
// Luego, Agregamos el JCombobox al contenedor
Container contenedor = getContentPane ( );
contenedor.add (cmbMedida );
// Creamos el objeto miManejador
ManejadorCombo miManejador = new ManejadorCombo( );
// Adicionamos el manejador al componente
cmbMedida.addActionListener( miManejador );

// clase interna privada para el manejo de eventos


private class ManejadorCombo implements ActionListener {
// procesar eventos del JCombobox cuando selecciona un elemento
public void actionPerformed( ActionEvent evento ) { Retorna el
String cadena = ""; valor
if ( evento.getSource() == cmbMedida ) seleccionado
cadena = “Se selecciono: " + evento.getSelectedValue ();
JOptionPane.showMessageDialog( null,
cadena,"Resultados", JOptionPane.CANCEL_OPTION);
}
} Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo 2- Manejo de Eventos – JComboBox

// Instanciamos un modelo de datos tipo DefaultComboBoxModel()


lstModelo = new DefaultComboBoxModel( ); Adiciona un elemento al
// Agregamos elementos al modelo modelo
lstModelo.addElement(“Ana”);
DefaultComboBoxModel
lstModelo.addElement(“Pedro”);
//Instanciamos el JComboBox con el modelo
JComboBox cmbNombre = new JComboBox ( lstModelo );
Container contenedor = getContentPane ( );
contenedor.add ( cmbNombre );
ManejadorBoton miManejador = new ManejadorBoton( );
btnAdicionar.add ActionListener ( miManejador );
btnEliminar.add ActionListener ( miManejador );
// clase interna privada para el manejo de eventos
private class ManejadorBoton implements ActionListener {
// procesar eventos del botón cuando hace clic
public void actionPerformed( ActionEvent evento ) {
if ( evento.getSource() == btnAdicionar )
lstModelo.addElement( fldNombre.text);
if ( evento.getSource() == btnEliminar )
lstModelo.removeElementAt( lstNombre.getSelectedIndex());
}
} Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JCheckBox - ItemListener


Manejo de Eventos :
1. Se declara una clase interna (private) para implementar la interfaz
ItemListener para manejar los eventos.
private class ManejaCheckBox implements ItemListener {

}
2. La clase ManejaCheckBox debe implementar el método
itemStateChanged para ejecutarse cuando el usuario active un botón
con el teclado o con clic del mouse y procesar el evento ItemEvent.
private class ManejaCheckBox implements ItemListener {
public void itemStateChanged (ItemEvent evento) {
// Aquí se programa cuando hay un cambio de estado
}
}

2. Debemos instanciar la clase ManejaCheckBox y obtener un objeto.


ManejaCheckBox manejaEventoCheckBox=new ManejaCheckBox ();

4. A cada JCheckBox debemos adicionarle con el método


addItemListener( ) el objeto manejaEventoCheckBox. Ejemplo:
chkNegrita.addItemListener ( manejaEventoCheckBox );
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo Manejo de Eventos – JCheckBox


JCheckBox chkNegrita = new JCheckBox( “Negrita”);
// registrar el manejador de evento
ManejadorBoton miManejador = new ManejadorBoton( );
// Adicionamos el manejador al componente, cuando se hace clic se
// genera un evento ItemEvent
chkNegrita.addItemListener( miManejador );
Si hay un
// clase interna privada para el manejo de eventos cambio de
private class ManejadorBoton implements ItemListener { estado del
private int valNegrita = Font.PLAIN; botón
// procesar eventos del JCheckBox cuando hace click
public void itemStateChanged( ItemEvent evento )
if ( evento.getSource() == Negrita )
if ( evento.getStateChange() == ItemEvent.SELECTED )
valNegrita = Font.BOLD;
else valNegrita = Font.PLAIN; Retorna si
chkNegrita.setFont( esta
new Font( "TimesRoman", valNegrita, 14 ) ); seleccionado
}
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JList - ListSelecctionListener


Manejo de Eventos:
1. Se declara una clase interna (private) para implementar la interfaz
ListSelecctionListener para manejar los eventos.
private class ManejaLista implements ListSelecctionListener {

}
2. La clase ManejaLista debe implementar el método valueChanged para
ejecutarse cuando el usuario active un JList con el teclado o con clic
del mouse y procesar el evento ListSelectionEvent.
private class ManejaLista implements ListSelecctionListener {
public void valueChanged (ListSelectionEvent evento) {
// Aquí se programa cuando hay un evento de selección
}
}
2. Debemos instanciar la clase ManejaLista y obtener un objeto.
ManejaLista manejaEventoLista = new ManejaLista ( );

4. A cada JList debemos adicionarle con el método


addListSelectionListener ( ) el objeto manejaEventoLista . Ejemplo:
lista.addListSelectionListener (manejaEventoLista );
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JList - Ejemplo 1


String arrNombres [ ] = {“ DESILID”, “ELIO”, “MERCEDES”, “VICTOR”};
JList lstNombre = new JList ( arrNombres );
// Luego, Agregamos el JList al contenedor
Container contenedor = getContentPane ( );
Método que
contenedor.add ( lstNombre );
se ejecuta si
// Creamos el objeto miManejador
se produce
ManejadorLista miManejador = new ManejadorLista( );
un evento de
// Adicionamos el manejador al componente
selección
lstNombre.addListSelectionListener ( miManejador );
// clase interna privada para el manejo de eventos
private class ManejadorLista implements ListSelectionListener {
// procesar eventos del JList cuando selecciona un elemento
public void valueChanged (ListSelectionEvent evento ) {Retorna el
String cadena = ""; valor
if ( evento.getSource() == lstNombre ) seleccionado
cadena = “Se selecciono: " + evento. getSelectedValue ();
JOptionPane.showMessageDialog( null,
cadena,"Resultados", JOptionPane.CANCEL_OPTION);
}
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JList y JTextField– Ejemplo 2


JTextField fldNombre = new JTextField (20 ); // Crea el campo de texto
// Instanciamos una lista de tipo DefaultListModel
lstModelo = new DefaultListModel ();
// Agregamos elementos a la lista tipo DefaultListModel
lstModelo.addElement(“Ana”);
lstModelo.addElement(“Pedro”); Adiciona un elemento al
//Instanciamos la lista con la lista modelo modelo de la lista
JList lstNombre = new JList ( lstModelo ); DefaultListModel
Container contenedor = getContentPane ( );
contenedor.add ( lstNombre );
ManejadorBoton miManejador = new ManejadorBoton( );
btnAdicionar.addActionListener ( miManejador );
btnEliminar.addActionListener ( miManejador );
// clase interna privada para el manejo de eventos
private class ManejadorBoton implements ActionListener {
public void actionPerformed( ActionEvent evento ) {
if ( evento.getSource() == btnAdicionar )
lstModelo.addElement( fldNombre.getText( ) );
if ( evento.getSource() == btnEliminar )
lstModelo.removeElementAt( lstNombre.getSelectedIndex( ) );
}
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JList y JFormattedTextField – Ejemplo 3


// Crea el campo de texto con formato
JFormattedTextField fldNumero = new JFormattedTextField (formato );
// Instanciamos una lista de tipo DefaultListModel
lstModelo = new DefaultListModel ();
// Agregamos elementos a la lista tipo DefaultListModel
lstModelo.addElement(“Ana”); Adiciona un elemento al
lstModelo.addElement(“Pedro”); modelo de la lista
//Instanciamos la lista con la lista modelo DefaultListModel
JList lstNombre = new JList ( lstModelo );
Container contenedor = getContentPane ( );
contenedor.add ( lstNombre );
ManejadorBoton miManejador = new ManejadorBoton( );
btnAdicionar.add ActionListener ( miManejador );
btnEliminar.add ActionListener ( miManejador );
// clase interna privada para el manejo de eventos
private class ManejadorBoton implements ActionListener {
public void actionPerformed( ActionEvent evento ) {
Object oValor = fldNumero.getValue( ); // Obtenemos el valor como objeto
String valorString = oValor.toString(); // Transformamos luego a String
lstModelo.addElement( valorString ); // El String lo agregamos al formato
fldNumero.setValue(new Integer(0)); // Inicializamos el campo con formato
}
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JSlider - ChangeListener


Manejo de Eventos : Importar la clase javax.swing.event.*
1. Se declara una clase interna (private) para implementar la interfaz
ChangeListener para manejar los eventos.
private class ManejaSlider implements ChangeListener { … }
2. La clase ManejaSlider debe implementar el método stateChanged para
ejecutarse cuando el usuario mueva el componente JSlider y procesar el
evento ChangeEvent.
private class ManejaSlider implements ChangeListener {
public void stateChanged (ChangeEvent evento) {
// Aquí se programa cuando hay un cambio de estado
}
}
2. Debemos instanciar la clase ManejaSlider y obtener un objeto.
ManejaSlider manejaEventoSlider = new ManejaSlider ();

4. A cada JSlider debemos adicionarle con el método addChangeListener()


el objeto manejaEventoSlider . Ejemplo:
sldTermeratura.addChangeListener (manejaEventoSlider );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo Manejo de Eventos – JSlider


JLabel lblPalabra = new JLabel(“Tamaño de la Fuente”);
lblPalabra.setFont( new Font(“Arial”, Font.BOLD, 10 ) );
JSlider sldTamano = new JSlider ( SwingConstants.HORIZONTAL,
0, 100, 10 );
// registrar el manejador de evento
ManejadorSlider miManejador = new ManejadorSlider ( );
// Adicionamos el manejador al componente, cuando se desliza se
// genera un evento ChangeEvent Si hay un
sldTamano.addChangeListener( miManejador ); cambio de
estado del
// clase interna privada para el manejo de eventos Slider
private class ManejadorSlider implements ChangeListener {
// procesar eventos del JSlider cuando cambia de valor Retorna el
public void stateChanged ( ChangeEvent evento ) { valor del
int tamano = 0; Slider
if ( evento.getSource() == sldTamano ) {
tamano = sldTamano.getValue();
lblPalabra.setFont(new Font(“Arial”, Font.BOLD, tamano) );
}
}
} Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Crear JSlider
Nota:

Cuando vamos a crear un JSlider donde las etiquetas son los mismos
valores enteros del JSlider no es necesario utilizar las clases Dictionary ni
HansTable, y se le coloca un borde el cual muestra los valores.

Veamos:
// Creamos el JSlider
sldTamano = new JSlider(JSlider.HORIZONTAL, 1, 50, 1);
sldTamano.setPaintLabels(true);
sldTamano.setPaintTicks(true);
sldTamano.setMajorTickSpacing(10);
sldTamano.setMinorTickSpacing(1);
// Al colocarle el borde (con titulo) coloca los valores por defecto
// en la marca señalada por setMajorTickSpacing()
sldTamano.setBorder( BorderFactory.createTitledBorder(“Tamaño") );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Manejo de Eventos – JSpinner - ChangeListener


Manejo de Eventos :
1. Se declara una clase interna (private) para implementar la interfaz
ChangeListener para manejar los eventos.
private class ManejaSpinner implements ChangeListener {

}
2. La clase ManejaSpinner debe implementar el método stateChanged
para ejecutarse cuando el usuario mueva el componente JSpinner y
procesar el evento ChangeEvent.
private class ManejaSpinner implements ChangeListener {
public void stateChanged (ChangeEvent evento) {
// Aquí se programa cuando hay un cambio de estado
}
}
2. Debemos instanciar la clase ManejaSpinner y obtener un objeto.
ManejaSpinner manejaEventoSpinner = new ManejaSpinner ();

4. A cada JSpinner debemos adicionarle con el método


addChangeListener ( ) el objeto manejaEventoSpinner . Ejemplo:
spnEdad.addChangeListener (manejaEventoSpinner );
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo Manejo de Eventos – JSpinner


JLabel lblEsPar = new JLabel( );
SpinnerNumberModel modelo = new SpinnerNumberModel( 1, 1, 10, 1 );
JSpinner spnNumero = new JSpinner ( modelo );
// registrar el manejador de evento
ManejadorSpinner miManejador = new ManejadorSpinner ( );
// Adicionamos el manejador al componente, cuando se hace clic se
// genera un evento ChangeEvent Si hay un
spnNumero.addChangeListener( miManejador ); cambio de
// clase interna privada para el manejo de eventos estado del
private class ManejadorSpinner implements ChangeListener { Spinner
// procesar eventos del JSpinner cuando cambia de valor
public void stateChanged ( ChangeEvent evento ) {
Retorna el
if ( eveto.getSource() == spnNumero ) {
// Obtenemos el objeto que tiene el JSpinner valor del
Object oValor = spnNumero.getValue( ); Spinner
String valorString = oValor.toString(); // Lo llevamos a String
int valor = Integer.parseInt(valorString); // Lo llevamos a int
if (valor % 2) lblEsPar.setText(“Es Par” );
else lblEsPar.setText(“Es Impar” );
}
}
} Docente: Ing. Fidel Darío Montes de Oca C.
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse - MouseListener


Manejo de Eventos:
1. Se declara una clase interna (private) para implementar la interfaz
MouseListener para manejar los eventos.
private class ManejaRaton implements MouseListener {…}
2. La clase ManejaRaton debe implementar todos los métodos de la
interfase MouseListener
private class ManejaRaton implements MouseListener {
public void mouseClicked (MouseEvent evento) {
// Aquí se programa cuando se hace clic
}
public void mouseEntered (MouseEvent evento) {
// Aquí se programa cuando hay un evento de selección
}
public void mouseExited (MouseEvent evento) {
// Aquí se programa cuando hay un evento de selección
}
public void mousePressed (MouseEvent evento) {
// Aquí se programa cuando hay un evento de selección
}
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse - MouseListener


3. Instanciar la clase ManejaRaton y obtener un objeto.
ManejaRaton manejaEventoRaton = new ManejaRaton ( );

4. A cada componente debemos adicionarle con el método


addMouseListener ( ) el objeto manejaEventoLista .

Ejemplo:
componente.addMouseListener (manejaEventoRaton );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse - MouseListener


MouseListener
MÉTODOS DESCRIPCIÓN
void mousePressed (MouseEvent E) Se llama cuando se oprime el
botón del ratón sobre un
componente
void mouseClicked (MouseEvent E) Se llama cuando se oprime y se
suelta un botón del ratón sobre
un componente
void mouseReleased (MouseEvent E) Se llama cuando se suelta un
botón. Sigue del evento
mousePressed
void mouseEntered (MouseEvent E) Se llama cuando cursor del
mouse entra a los limites de un
componente
void mouseExited (MouseEvent E) Se llama cuando cursor del
mouse sale de los limites de un
componente

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse - MouseMotionListener


Manejo de Eventos:
1. Se declara una clase interna (private) para implementar la interfaz
MouseMotionListener para manejar los eventos.
private class ManejaMouse implements MouseMotionListener {…}
2. La clase ManejaMouse debe implementar todos los métodos de la
interfase MouseMotionListener
private class ManejaMouse implements MouseMotionListener {
public void mouseDragged (MouseEvent evento) {
// Aquí se programa cuando se arrastra el ratón
}
public void mouseMoved (MouseEvent evento) {
// Aquí se programa cuando esta sobre un componente
}
}
3. Instanciar la clase ManejaMouse y obtener un objeto.
ManejaMouse manejaEventoMouse = new ManejaMouse ( );
4. A cada componente debemos adicionarle con el método
addMouseMotionListener ( ) el objeto ManejaMouse .
Ejemplo:
componente.addMouseMotionListener (manejaEventoMouse );
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse - MouseMotionListener

MouseMotionListener
MÉTODOS DESCRIPCIÓN
void mouseDragged (MouseEvent E) (Arrastrar) Se llama cuando se
oprime el botón del ratón
mientras el cursor esta sobre el
componente y se mueve mientras
el botón sigue oprimido. Sigue
después de la llamada a
mousePressed. Todos los eventos
de arrastre se envían al
componente que inicio la acción
void mouseMoved (MouseEvent E) Se llama al mover el mouse
cuando su cursor esta sobre un
componente

Como los manejadores de eventos MouseListener y


MouseMotionListener son clases abstractas no pueden ser
instanciadas
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse – Ejemplo1


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RatonAppFrame extends JFrame implements MouseListener,
MouseMotionListener{
JTextField texto;
Este ejemplo implementa las
public RatonAppFrame( ){
texto = new JTextField(35);
interfases MouseListener y
texto.addMouseListener(this); MouseMotionListener y se
texto.addMouseMotionListener(this); controlan los eventos del
add(texto, BorderLayout.CENTER); mouse del componente texto.
}

public void mousePressed (MouseEvent evento) {


if ((evento.getModifiers() & InputEvent.BUTTON1_MASK) ==
InputEvent.BUTTON1_MASK)
texto.setText("Botón izquierdo del ratón apretado en " +
evento.getX() + "," + evento.getY());
else texto.setText("Botón derecho del ratón apretado en " +
evento.getX() + "," + evento.getY());
}

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse – Ejemplo1 Continuación


public void mouseClicked(MouseEvent e) {
texto.setText("Hizo clic sobre el ratón en " + e.getX() + "," + e.getY());
}
public void mouseReleased(MouseEvent e){
texto.setText("Se soltó el botón del ratón.");
}
public void mouseEntered(MouseEvent e){
texto.setText("Ratón entro al campo de texto.");
}
public void mouseExited(MouseEvent e){
texto.setText("Ratón salio del campo de texto.");
}
public void mouseDragged(MouseEvent e){
texto.setText("Se arrastó el ratón.");
}
public void mouseMoved(MouseEvent e){
texto.setText("Se movió el ratón.");
}
public static void main(String[] args) {
RatonAppFrame programa = new RatonAppFrame( );
programa.setTitle("Eventos del Mouse - en el JFrame");
programa.pack(); programa.setVisible(true);
}
}// Fin de la clase
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse – Ejemplo2


import java.awt.*;
Este ejemplo funciona con
import java.awt.event.*;
import javax.swing.*; una clase privada para
public class RatonAppFrame2 extends JFrame { manejar los eventos del
JLabel lblTexto1, lblTexto2; mouse que implementa las
JTextField texto1, texto2; interfases MouseListener y
MouseMotionListener
public RatonAppFrame2( ){
lblTexto1 = new JLabel("Texto con Evento del Mouse: ");
lblTexto2 = new JLabel("Texto sin Evento del Mouse: ");
texto1 = new JTextField(35);
texto2 = new JTextField(35);
ManejadorRaton manejaRaton = new ManejadorRaton();
texto1.addMouseListener(manejaRaton);
texto1.addMouseMotionListener(manejaRaton);
add(texto1, BorderLayout.NORTH);
add(texto2, BorderLayout.SOUTH);
}
public static void main(String[] args) {
RatonAppFrame2 programa = new RatonAppFrame2( );
programa.setTitle("Eventos del Mouse - en el JFrame");
programa.pack(); programa.setVisible(true);
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Mouse – Ejemplo2 Continuación


private class ManejadorRaton implements MouseListener, MouseMotionListener {
public void mousePressed (MouseEvent e) {
if ((e.getModifiers() & InputEvent.BUTTON1_MASK) ==
InputEvent.BUTTON1_MASK)
texto1.setText("Botón izquierdo del ratón apretado en " +
e.getX() + "," + e.getY());
else texto1.setText("Botón derecho del ratón apretado en " +
e.getX() + "," + e.getY());
}
public void mouseClicked(MouseEvent e) {
texto1.setText("Hizo clic sobre el ratón en " + e.getX() + "," + e.getY());
}
public void mouseReleased(MouseEvent e){
texto1.setText("Se soltó el botón del ratón.");
}
public void mouseEntered(MouseEvent e){
texto1.setText("Ratón entro al campo de texto.");
}
public void mouseExited(MouseEvent e){
texto1.setText("Ratón salio del campo de texto.");
}
public void mouseDragged(MouseEvent e){
texto1.setText("Se arrastó el ratón.");
}
public void mouseMoved(MouseEvent e){
texto1.setText("Se movió el ratón.");
}
} // Fin de la clase priivada
}// Fin de la clase
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Teclado - KeyListener


Manejo de Eventos:
1. Se declara una clase interna (private) para implementar la interfaz
KeyListener para manejar los eventos.

private class ManejaTeclado implements KeyListener {…}

2. La clase ManejaTeclado debe implementar todos los métodos de la


interfase KeyListener

private class ManejaTeclado implements KeyListener {


void keyPressed ( KeyEvent evento ) {
//Cuando se presiona una tecla.
}
void keyTyped (KeyEvent evento ) {
//Cuando esta presionada
}
void keyReleased ( KeyEvent evento ) {
//Cuando se suelta una tecla.
}
}
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Eventos del Teclado - KeyListener


Manejo de Eventos:
3. Instanciar la clase ManejaTeclado y obtener un objeto.

ManejaTeclado manejaEventoTeclado = new ManejaTeclado ( );

4. A cada componente debemos adicionarle con el método


addKeyListener ( ) el objeto manejaEventoTeclado.

Ejemplo:

componente.addKeyListener ( manejaEventoTeclado );

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Métodos del KeyEvent

KeyEvent
MÉTODOS DESCRIPCIÓN
int getKeyCode ( ) Retorna el código de la tecla
String getKeyText (int keyCode) Retorna el carácter de la tecla
correspondiente al código de la tecla

char getKeyChar (int keyCode ) Retorna el carácter de la tecla


correspondiente al código de la tecla

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejemplo - Eventos del Teclado


import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class PruebaTeclado extends JFrame {
JTextField fldPalabra; JTextField fldRepetida;
public PruebaTeclado ( ) {
fldPalabra = new JTextField ( 20 ); fldRepetida = new JTextField ( 20 );
ManejadorTeclado manejaTeclado = new ManejadorTeclado ( );
fldPalabra.addKeyListener ( manejaTeclado );
add ( fldPalabra, BorderLayout.NORTH );
add ( fldRepetida, BorderLayout.SOUTH );
}
private class ManejadorTeclado implements KeyListener {
public void keyPressed ( KeyEvent evento ) {
int codigoTecla = evento.getKeyCode( );
char laTecla = evento.getKeyChar ( );
fldRepetida.setText( Character.toString( laTecla) );
}
public void keyTyped (KeyEvent evento ) { }
public void keyReleased ( KeyEvent evento ) { } Este ejemplo muestra
}// Fin Clase Privada cada carácter tipeado
public static void main(String[] args) { en un campo de texto
PruebaTeclado programa = new PruebaTeclado( ); en otro
programa.pack( );
programa.setVisible(true);
}
}// Fin de la clase Docente: Ing. Fidel Darío Montes de Oca C.
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Resumen de los Eventos por Componente

COMPONENTE MÉTODO DESCRIPCIÓN


evento.getSource() Permite determinar el componente
de la GUI que interactuó con el
JTextField usuario. Donde evento es un objeto
ActionEvent
Texto.getActionCommand() Devuelve el texto del objeto
JTextField que genero el evento.
getPassword () Devuelve el texto del objeto
JPasswordField que genero el
evento.
ActionEvent Genera eventos ActionEvent que
pueden ser procesados por objetos
JButton ActionListener
actionPerformed() Procesa el evento
getActionCommand() Devuelve la etiqueta del botón
addActionListener() Establece el manejador de los
eventos de cada Item o Botón

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Resumen de los Eventos por Componente

COMPONENTE MÉTODO DESCRIPCIÓN


ActionEvent Genera eventos ActionEvent que
pueden ser procesados por objetos
ActionListener
JCheckBok actionPerformed() Procesa el evento
getActionCommand() Devuelve la etiqueta del botón
getSource() Devuelve el objeto que genero el
evento
isSelected() Devuelve si la casilla esta seleccionada
o no
ItemEvent Genera eventos ItemEvent que pueden
ser procesados por objetos
ItemListener
JRadioButton
itemStateChanged() Procesa el evento del Item o Elemento

addItemListener() Establece el manejador de los eventos


para la lista c

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Resumen de los Eventos por Componente

COMPONENTE MÉTODO/CONSTANTES DESCRIPCIÓN


ItemEvent Genera eventos ItemEvent que pueden
ser procesados por objetos
ItemListener
JComboBox itemStateChanged() Procesa el evento del Item o Elemento
addItemListener() Establece el manejador de los eventos
para la lista combinada
ItemEvent.SELECTED Constante de un Item o fila
Seleccionada

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Resumen de los Eventos por Componente

COMPONENTE MÉTODO DESCRIPCIÓN


ListSelectionEvent Genera eventos ListSelectionEvent que
pueden ser procesados por objetos
ListSelectionListener
JList valueChanged() Procesa el evento de la lista a
seleccionar una fila
addListSelectionListener() Establece el manejador de los eventos
para la lista
getSelectedIndex() Devuelve si posición de la casilla que
esta seleccionada

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Clase DefaultComboBoxModel
• Permite crear una lista ó modelo de datos para los componentes
JComboBox
METODOS CONSTRUCTOR
DefaultComboBoxModel ( )
METODOS DESCRIPCIÓN
getElementAt (int posicion) Retorna el valor almacenado en la
posición especificada de la lista
int getSize ( ) Retorna la cantidad de elementos
almacenada en la lista.
void addElement ( String texto ) AEstablece o cambia el texto del
botón
setRolloverIcon (Icon icono) Icono que se muestra cuando se pasa
el ratón sobre el botón

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Clase DefaultComboBoxModel
• Permite crear una lista ó modelo de datos para los componentes
JComboBox. Se puede utilizar el método elCombo.setModel( modelo)
METODOS CONSTRUCTORES
DefaultComboBoxModel ( )
DefaultComboBoxModel ( String [ ] arreglo )
METODOS DESCRIPCIÓN
getElementAt (int posicion) Retorna el valor almacenado en la
posición especificada de la lista
void removeElementAt (int posicion) Elimina un elemento ubicado en la
posición especificada del modelo
int getSize ( ) Retorna la cantidad de elementos
almacenada en la lista.
void addElement ( String texto ) Adiciona un elemento a la lista ó
modelo
void removeAllElements ( ) Elimina todos los elementos de la lista

Importar la clase javax.swing.DefaultComboBoxModel;

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Clase DefaultListModel
• Permite crear una lista ó modelo de datos para los componentes
JList. Se puede utilizar el método laLista.setModel( modelo)
METODO CONSTRUCTOR
DefaultListModel ( )
DefaultListModel ( String [ ] arreglo )
METODOS DESCRIPCIÓN
getElementAt (int posicion) Retorna el valor almacenado en la
posición especificada de la lista
void removeElementAt (int posicion) Elimina un elemento ubicado en la
posición especificada del modelo
int getSize ( ) Retorna la cantidad de elementos
almacenada en la lista.
void addElement ( String texto ) Adiciona un elemento a la lista ó
modelo
void removeAllElements ( ) Elimina todos los elementos de la lista
void clear ( )
Importar la clase javax.swing.DefaultListModel;
Docente: Ing. Fidel Darío Montes de Oca C.
LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Clase SpinnerNumberModel
• Permite crear un modelo de datos para los componentes JSpinner.

METODO CONSTRUCTOR
SpinnerNumberModel ( int valorDefecto,
int min,
int max,
int incremento )

Importar la clase javax.swing.SpinnerNumberModel;

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 1
Hacer un applet y una aplicación que lea dos números enteros en componentes
JFormattedTextField y al hacer clic en el botón “Determinar” muestre en un
JTextField cual es el mayor y cual es el menor, ó si son iguales.

Notas:
1. Los componentes JFormattedTextField solo deben aceptar números enteros.
Utilizar las clases java.text.DecimalFormat y javax.swing.text.NumberFormatter
2. El componente JTextField no debe ser editable.
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 2
Hacer un applet y una aplicación que lea en componentes JFormattedTextField la base y
la altura de un rectángulo y al hacer clic en el botón “Calcular” muestre en un
componente JTextField el área del rectángulo.

Notas:
1. Los componentes JFormattedTextField solo deben aceptar números enteros.
Utilizar las clases java.text.DecimalFormat y javax.swing.text.NumberFormatter
2. El componente JTextField no debe ser editable.
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 3
Hacer un applet y una aplicación que lea en componentes JFormattedTextField los
coeficientes a, b y c de una ecuación de segundo grado, y al clic en el botón “Calcular”
estudie si tiene o no solución. En caso positivo, las soluciones se calcularán y se
mostrarán en un componente JTextField no editable. Si no tiene solución, debe
mostrarse un mensaje con la clase JOptionPane ó se muestra en los componentes
JTextField
Notas:
1. Los componentes JFormattedTextField solo deben aceptar números enteros.
Utilizar las clases java.text.DecimalFormat y javax.swing.text.NumberFormatter
2. Los componentes JTextField no deben ser editables.
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 4
Hacer un applet y una aplicación que implemente una calculadora sencilla. Debe leer en
componentes JFormattedTextField dos números y permitir calcular a través de botones
la suma, resta, multiplicación y división de esos números. El resultado de cada operación
debe mostrarse en un solo componente JTextField.
Notas:
1. Los componentes JFormattedTextField solo deben aceptar números enteros.
Utilizar las clases java.text.DecimalFormat y javax.swing.text.NumberFormatter
2. Los componentes JTextField no deben ser editables.
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 5
Hacer un applet y una aplicación que lea un número entero en un componente
JFormattedTextField y al hacer clic en el botón Buscar impares llene una lista con los
número impares menores que él. Hacer lo mismo para los números pares.
Notas:
1. El componente JFormattedTextField solo debe aceptar números enteros. Utilizar
las clases java.text.DecimalFormat y javax.swing.text.NumberFormatter
2. Las listas deben estar dentro de un componente JScrollPane.
3. Los elementos de la lista deben manejarse con la clase DefaultListModel
4. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
5. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
6. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 6
Hacer un applet y una aplicación que lea un número entero en un componente JSpinner y
al hacer un cambio de valor llene dos lista con los números impares y pares menores que
él respectivamente.

Notas:
1. Las listas deben estar dentro de un componente JScrollPane.
2. Los elementos de la lista deben manejarse con la clase DefaultListModel
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 7
Hacer un applet y una aplicación que permita llenar una lista con números enteros para
calcular el mayor y el menor. Los números deben leerse con un componente
JFormattedTextField y adicionarse con un botón “Agregar”. Luego, al hacer clic en el
botón “Calcular” debe mostrar en componentes JTextField no editable el número mayor y
el menor.
Para eliminar números de la lista debe incorporar el botón “Eliminar”.
Notas:
1. Las listas deben estar dentro de un componente JScrollPane.
2. Los elementos de la lista deben manejarse con la clase DefaultListModel
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 8
Hacer un applet y una aplicación que permita llenar una lista con números enteros para
calcular el promedio. Los números deben leerse con un componente JFormattedTextField
y adicionarse con un botón “Agregar”. Luego, al hacer clic en el botón “Calcular” debe
mostrar en un componente JTextField no editable el promedio.
Para eliminar números de la lista debe incorporar el botón “Eliminar”.

Notas:
1. Las listas deben estar dentro de un componente JScrollPane.
2. Los elementos de la lista deben manejarse con la clase DefaultListModel
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 9
Hacer un applet y una aplicación que permita llenar una lista con números enteros para
calcular el promedio. Los números deben leerse con un componente JFormattedTextField
y adicionarse con un botón “Agregar”. Luego, al hacer clic en el botón “Calcular” debe
mostrar en un componente JTextField no editable el promedio de los números que el
usuario haya seleccionado y si no hay selección debe mostrar un mensaje. Debe
incorporar un botón que permita seleccionar todos y otro para desmarcar todos.
Para eliminar números de la lista debe incorporar el botón “Eliminar”.
Notas:
1. Las listas deben estar dentro de un componente JScrollPane.
2. Los elementos de la lista deben manejarse con la clase DefaultListModel
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 10
Crear un applet y una aplicación que permitan convertir Bs a Dólares y Euros. Los Bs se
manejarán con un componente JSlider y la conversión se mostrarán en componentes
JTextField no editables (Bs, Dólares y Euros).
Notas:
1. Los valores a transformar ó convertir deben obtenerse a través de componentes
JSlider sin etiquetas.
2. Al mover el JSlider se deben reflejar su conversión en los componentes JTextField
3. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
4. Validar las excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 11
Crear un applet y una aplicación que permitan convertir temperaturas expresadas en
grados Fahrenheit y las convierta a grados Celsius en otro componente JSlider. La
conversión de grados Farenheit (F) a Celsius (C) está dada por C = 5/9(F − 32). Además,
los valores deben mostrarse en componentes JTextField.

Notas:
1. Los valores a transformar ó convertir deben obtenerse a través de componentes
JSlider con etiquetas.
2. Al mover cualquier JSlider deben reflejar su conversión en otro componente
JSlider.
3. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
4. Validar las excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 12
Crear un applet y una aplicación que permitan convertir las medidas del sistema MKS al
sistema ingles. Es decir, Llevar centímetros, metros o kilómetros a pies, yardas, entre
otros.
Notas:
1. Los tipos de medidas deben estar en componentes JComboBox
2. Los valores a transformar ó convertir deben obtenerse a través de componentes
JSlider sin etiquetas y reflejar su valor su componente JTextField respectivo los
cuales no deben ser editables.
3. Al mover un JSlider debe moverse automaticamente el otro según su conversión
en el sistema de medida
4. Validar las excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 13
Crear un applet y una aplicación que permitan mostrar en un componente JLabel la
cantidad de clic que se realicen en la ventana del programa.
Notas:
1. Debe implementar los métodos de la interfase MouseListener
2. Puede realizar la implementación de la interfase en una clase privada o
directamente en la clase JApplet ó JFrame.
3. Validar las excepciones que sean necesarias.

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 14
Crear un applet y una aplicación que permitan leer a través de dos componentes
JFormattedTextField dos números y mostrar la suma en un componente JTextField no
editable. La suma debe hacerse y mostrarse cada vez que el usuario presione una tecla
en los componentes, es decir, implementar los métodos keyPressed, keyReleased y
keyTyped, de la interfase KeyListener.

Notas:
1. Puede realizar la implementación de la interfase en una clase privada o
directamente en la clase JApplet ó JFrame.
2. Se recomienda hacer un método que calcule la suma y llamarlo desde cada método
de la interfase KeyListener.
3. Debe utilizar un botón “Limpiar” ó “Cancelar” para inicializar los componentes.
4. Utilizar un botón para salir del programa, el cual debe llamar al método
showOptionDialog de JOptionPane y luego llamar al método System.exit(0) para
terminar el programa.
5. Realizar las validaciones ó excepciones que sean necesarias

Docente: Ing. Fidel Darío Montes de Oca C.


LENGUAJE DE PROGRAMACIÓN DE LA WEB I – UNIDAD II – MANEJO DE EVENTOS

Ejercicio 15
Crear un applet y una aplicación que permitan imitar las funciones de una calculadora.
Las operaciones básicas son suma, resta, multiplicación y división. Los números leídos
deben mostrarse en un componente JTextField, así como también los resultados. Se debe
permitir realizar muchas operaciones unas seguidas de la otra tal cual como lo hacemos
con la calculadora de Windows.

Nota:
1. Realizar las validaciones ó excepciones que sean necesarias

Docente: Ing. Fidel Darío Montes de Oca C.

También podría gustarte