INSTITUTO TECNOLÓGICO DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
MATERIA:
Tópicos Avanzados de Programación
DOCENTE:
MTI. ANGELINA MÁRQUEZ JIMÉNEZ.
GRUPO:
404- A
REPORTE DE PRÁCTICA No. 3
INTEGRANTES:
ANGEL DE JESUS CARMONA COBAXIN
ALEJANDRA DEL CARMEN VICHI ORTIZ
PERIODO:
ENERO – JULIO 2021
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
PRÁCTICA NO. 3
NOMBRE DE LA PRÁCTICA:
Control de componentes
OBJETIVO:
Emplear listeners de componentes indicados en la práctica para ejemplificar el
manejo de componentes gráficos de control.
FUNDAMENTO TEÓRICO:
Cuando el usuario de un programa o applet mueve el ratón, o hace un clic o usa
el teclado, genera un Evento. En Java los eventos, como cualquier otra cosa, se
representan como instancias u objetos de alguna clase. Para programar una
interfaz gráfica es necesario aprender a utilizar los eventos.
Los eventos son las acciones que puede realizar el usuario, al realizar un evento
se produce una serie de acciones. Por ejemplo, si el usuario pulsa un botón
llamado “Salir” cerrara la aplicación. Otro ejemplo muy usado es para validar texto
que introduzcamos en un campo de texto.
Los Listeners (oyentes o escuchadores en español) se encargan de controlar los
eventos, esperan a que el evento se produzca y realiza una serie de acciones.
Según el evento, necesitaremos un Listener que lo controle.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
Cada Listener tiene una serie de métodos que debemos implementar
obligatoriamente, aunque solo queramos usar uno solo de ellos.
Los Listeners que usaremos estarán en el paquete java.awt.event.
Interfaz Métodos
ActionListener actionPerformed(ActionEvent)
AdjustmentListener adjustmentValueChanged(AdjustementEvent)
ComponentListener componentHidden(ComponentEvent)
componentMoved(ComponentEvent)
componentResized(ComponentEvent)
componentShown(ComponentEvent)
ContainerListener componentAdded(ContainerEvent)
componentRemoved(ContainerEvent)
FocusListener focusGained(FocusEvent)
focusLost(FocusEvent)
ItemListener itemStateChanged(ItemEvent)
KeyListener keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTyped(KeyEvent)
MouseListener mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
MouseMotionListener mouseDragged(MouseEvent)
mouseMoved(MouseEvent)
TextListener textValueChanged(TextEvent)
WindowListener windowActivated(WindowEvent)
windowClosed(WindowEvent)
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
windowClosing(WindowEvent)
windowDeactivated(WindowEvent)
windowDeiconified(WindowEvent)
windowIconified(WindowEvent)
windowOpened(WindowEvent)
Los listeners que usaremos estarán en el paquete java.awt.event (que debemos
importar antes de implementarlos) y nos podemos encontrar los siguientes:
Nombre: ActionListener
Descripción: Se produce al hacer click en un componente, también si se pulsa
Enter teniendo el foco en el componente.
Método:
public void actionPerformed(ActionEvent e)
Eventos:
JButton: click o pulsar Enter con el foco activado en él.
JList: doble click en un elemento de la lista.
JMenuItem: selecciona una opción del menú.
JTextField: al pulsar Enter con el foco activado.
Nombre: KeyListener
Descripción: Se produce al pulsar una tecla. según el método cambiara la forma
de pulsar la tecla.
Métodos:
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
public void keyTyped(KeyEvent e)
public void keyPressed(KeyEvent e)
public void keyReleased(KeyEvent e)
Eventos: Cuando pulsamos una tecla, según el listener:
keyTyped: al pulsar y soltar la tecla.
keyPressed : al pulsar la tecla.
keyReleased : al soltar la tecla.
Nombre: FocusListener
Descripción: Se produce cuando un componente gana o pierde el foco, es decir,
que esta seleccionado.
Métodos: Recibir o perder el foco.
Nombre: MouseListener
Descripción: Se produce cuando realizamos una acción con el ratón.
Métodos:
public void mouseClicked(MouseEvent e)
public void mouseEntered(MouseEvent e)
public void mouseExited(MouseEvent e)
public void mousePressed(MouseEvent e)
public void mouseReleased(MouseEvent e)
Eventos: Según el listener:
mouseClicked: pinchar y soltar.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
mouseEntered: entrar en un componente con el puntero.
mouseExited: salir de un componente con el puntero
mousePressed: presionar el botón.
mouseReleased: soltar el botón.
Nombre: MouseMotionListener
Descripción: Se produce con el movimiento del mouse.
Métodos:
public void mouseDragged(MouseEvent e)
public void mouseMoved(MouseEvent e)
Eventos: Según el listener:
mouseDragged: click y arrastrar un componente.
mouseMoved: al mover el puntero sobre un elemento.
MATERIAL Y EQUIPO EMPLEADO:
Equipo: Lenovo Ideapad S340
Procesador: AMD Ryzen 5 - 3500U
Almacenamiento: 8 GB RAM y 256 GB SSD
Arquitectura: 64 bits
DESARROLLO:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
public class MiPrimerGUI2mod extends JFrame{ //nombre de la clase
public static void main(String args[]){ //método principal
MiPrimerGUI2mod obj= new MiPrimerGUI2mod();
try{
obj.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel("com.sum.java.swing.plaf.nimbus.NimbusLookAndFe
el");
}catch (Exception e){
e.printStackTrace();
}
obj.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//cierra de la ventana
JLabel eti1 = new JLabel("NUmero1: ");
JLabel eti2 =new JLabel("NUmero2: ");
JLabel eti3 =new JLabel("Resultado=");
JTextField txtNum1 =new JTextField(9);
JTextField txtNum2 =new JTextField(9);
JButton btn1=new JButton("Calcular");
JButton btn2=new JButton("Clean");
MiPrimerGUI2mod(){
setTitle("Sumadora");
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
Container cp= getContentPane();
//Modificacion
cp.setLayout(new BoxLayout(cp,BoxLayout.Y_AXIS));
cp.setLayout(new FlowLayout());
//5,1,30,30
cp.setLayout(new GridLayout(5,1,30,30));
cp.add(eti1);
cp.add(txtNum1);
cp.add(eti2);
cp.add(txtNum2);
cp.add(btn1);
cp.add(btn2);
cp.add(eti3);
setSize(300,300);
setVisible(true);
btn1.addActionListener(new MiOyente());
btn2.addActionListener(new MiOyente());
}
class MiOyente implements ActionListener{
public void actionPerformed(ActionEvent event){
if(event.getSource()==btn1){
int num1 = Integer.parseInt(txtNum1.getText());
int num2 = Integer.parseInt(txtNum2.getText());
int res= num1+num2;
eti3.setText("Su Resultado es="+res);
}
else {txtNum1.setText("");
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
txtNum2.setText("");
eti3.setText("Resultado=");
}
}
}
}
RESULTADOS:
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
Compilamos y ejecutamos
el código del programa.
En la interfaz están las
JLabel y los botones que
se les ha dado
inicialización en el código,
como se ve es una
calculadora que solo
realizará sumas.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
Ingresamos los valores
que deseemos para hacer
el cálculo de nuestra
sumatoria.
Una vez ingresados los
dos números, el código
ejecuta la suma y arroja en
la interfaz nuestro
resultado.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
CONCLUSIONES:
En Java, cada evento está representado por un objeto que es una subclase de la
clase EventObject en el paquete java.util. Cada subclase de EventObject
representa un tipo de evento particular. Por ejemplo:
MouseEvent, para representar acciones del ratón: mover, arrastrar, hacer
clic en un botón del ratón, etc.
KeyEvent, para representar acciones del teclado, esto es, pulsar teclas.
ActionEvent, para representar una acción del usuario en la interfaz, por
ejemplo, pulsar un botón en la pantalla.
No obstante, en el modelo de eventos de Java, los EventObject no realizan
acciones por si mismos, sino que esos eventos son enviados a otro objeto
encargado de responder a un tipo de evento en particular. Estos objetos son los
que conocemos como listeners o "escuchadores", y existen diferentes listeners
que "escuchan" a los diferentes eventos, tales como los mouses listeners, key
listeners o action listeners.
Los listener no se implementan como clases en java, sino como interfaces. Una
interface sería entonces una colección de métodos que definen un
comportamiento en particular. De este modo, cualquier clase que suministre
información para dichos métodos puede declarar que implementa a dicho
interface.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN
REFERENCIAS:
[1] Aguilar, L. J. (2010). Programación en c/c++ java y UML. México: McGraw Hill.
[2] Ceballos, F. J. (2010). JAVA 2: Curso de programación. Madrid: RA-MA.
[3] Dean, J. (2009). Introducción a la programación con Java. México: McGraw
Hill.
[4] Deitel, D. y. (2010). Java Cómo Programar. México: Prentice Hall