Unidad 2 - Lenguaje de Programación de La WEB I
Unidad 2 - Lenguaje de Programación de La WEB I
Unidad 2 - 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
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.
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).
Image.SCALE_SMOOTH
Image.SCALE_DEFAULT
Image.SCALE_FAST
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:
• 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
• 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
• 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.
Teclas Rápidas
Teclas Rápidas - JTextField
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") );
Ejemplo:
componente.addMouseListener (manejaEventoRaton );
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
Ejemplo:
componente.addKeyListener ( manejaEventoTeclado );
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
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
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
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 )
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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