Está en la página 1de 3

Asignatura: Fundamentos de Programación

David Lizcano Casas

AEC4. Ejercicio de programación Orientada a Eventos

Introducción
El objetivo de esta ejercicio es que se aprenda a programar orientado a eventos. Para ello, los
estudiantes crearán un manejador de eventos, y lo registrarán en un componente de una aplicación
existente. De esta manera, se espera que los estudiantes aprendan a crear manejadores de eventos
básicos y a registrarlos en un componente.
Esta práctica se realizará en Java, y necesitáis un entorno de desarrollo para dicho lenguaje.
Cualquier entorno de desarrollo de Java que tengáis vale para realizar la práctica. Si no tenéis
ninguno, podéis usar Eclipse o NetBeans, que son gratuitos.
CONSEJOS INICIALES: Al realizar esta práctica, haced cada parte y comprobad que compila y
funciona, antes de pasar a la siguiente. Cada vez que creéis o modifiquéis una clase, si es posible
comprobad que se puede instanciar (definir un objeto de la clase) y que el comportamiento de sus
métodos es el adecuado, antes de crear o modificar la siguiente clase.

Enunciado
Los estudiantes deben realizar los siguientes pasos:
1 ) Crear un paquete “calculadora”. Dentro de este paquete, se debe crear una clase llamada
“Calculadora”, y en dicha clase copiar el código de “Calculadora.java” (que se facilita en el aula
virtual a continuación de este enunciado). Observar el código y entender a grandes rasgos cómo
funciona. Ejecutar esta clase como aplicación de java, y comprobar que se visualiza lo siguiente:

2 ) Crear un clase que sea manejadora de eventos (i.e. clase escuchadora) dentro de ese mismo
paquete. Para ello, debéis heredar de la clase “ActionListener”. El constructor de esta clase debe
recibir como parámetro un objeto de tipo “Calculadora” y almacenarlo en un atributo privado. El
método “actionPerformed” debe elevar al cubo la entrada de la calculadora y mostrarla en la salida.
Observa que la clase Calculadora tiene métodos tanto para leer la entrada como para escribir en la
salida (i.e. métodos “leerEntrada” y “escribirSalida”).
CONSEJO: Antes de hacer este paso, podéis observar el “Ejemplo 5” de la unidad didáctica 9 del
manual de Metodología de la Programación.
3 ) Debéis añadir un objeto de la clase creada en el anterior apartado (i.e. manejador de eventos) al
botón que hay en la clase Calculadora. Para esto, debéis detectar el atributo que implementa el
botón. Para añadir este manejador (i.e. escuchador), debéis hacerlo en el método
“registrarEscuchadores”. Observa que en la clase Calculadora, en un principio sólo debéis cambiar
dicho método.
4 ) Ejecuta la aplicación y comprueba que efectivamente cuando pulsáis el botón “Elevar al Cubo”,
se eleva al cubo el número entero que hay en la entrada y se muestra en la salida. Deberías probar
Asignatura: Fundamentos de Programación
David Lizcano Casas

con varios números diferentes.

Clase Calculadora de la que se parte


package calculadora;
import javax.swing.*;

/** Clase que representa una clase muy simple **/


public class Calculadora extends JFrame{
private static final long serialVersionUID = 1L;
private JTextField textoEntrada, textoSalida;
private JLabel etiquetaEntrada, etiquetaSalida;
private JButton botonCubo;

/** Constructor de la clase **/


public Calculadora(String titulo){
super(titulo);
inicializarComponentes();
registrarEscuchadores();
this.pack();
this.setVisible(true);
}

/** Inicializa los componentes gráficos de la clase **/


private void inicializarComponentes(){
Box box = Box.createHorizontalBox();
etiquetaEntrada=new JLabel(" Entrada:");
box.add(etiquetaEntrada);
textoEntrada=new JTextField(10);
textoEntrada.setText("0");
box.add(textoEntrada);
botonCubo=new JButton("Elevar al Cubo");
box.add(botonCubo);
etiquetaSalida=new JLabel(" Salida:");
box.add(etiquetaSalida);
textoSalida=new JtextField(10);
textoSalida.setEditable(false);
box.add(textoSalida);
this.add(box);

/** Devuelve el número entero que está escrito en el campo de texto


* de la entrada.
* En caso de error, devuelve 0 y muestra un mensaje de error. **/
public int leerEntrada(){
int num=0;
try{
Integer numInteger = Integer.valueOf(
this.textoEntrada.getText());
num = numInteger.intValue();
}catch(Exception e){
JOptionPane.showMessageDialog(this,
"El número entero de entrada es incorrecto.",
"Error", JOptionPane.ERROR_MESSAGE);
Asignatura: Fundamentos de Programación
David Lizcano Casas

}
return num;
}

/** Escribe el número en el campo de texto de la salida **/


public void escribirSalida(int num){
textoSalida.setText(""+num);
}
/** Este método registra los escuchadores de esta aplicación **/
public void registrarEscuchadores(){
// Este método lo deben rellanar los estudiantes
}

public static void main (String args[]){


java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
new Calculadora("Calculadora");
}
});
}
}

Normas de Entrega
Esta práctica se entregará en un archivo “.zip” que contenga el código Java de todas las clases, así
como un fichero pdf que muestre un ejemplo de ejecución.
Antes de enviarme el ejercicio, debéis haber comprobado que funciona. Además, debéis aseguraros
que el código es lo más legible posible; es decir, incluid los comentarios que consideréis oportunos
y poned nombres significativos a las variables.

También podría gustarte