Calculadora mejorada

prev.gif (997 bytes)home.gif (1054 bytes)next.gif (998 bytes)

Crear un applet que realice las tareas de una pequeña calculadora

Diseño de applet

Sobre el applet se colocan tres paneles

Se aplican los gestores de diseño GridLayout a los paneles superior e inferior, FlowLayout al central y BorderLayout al applet. Separar convenientemente los controles.

Para que funcione la calculadora mejorada, se procede del siguiente modo.

  1. Se introduce el primer operando en el control de edición, pulsando en los botones numéricos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  2. Se pulsa el botón que indica la operación a realizar (+, *, /)
  3. Se introduce el segundo operando en el control de edición, pulsando en los botones numéricos
  4. Se pulsa el botón titulado igual (=)

Aparece el resultado en el control de edición del panel central

Se pulsa el botón Borrar (C) para realizar otra operación

 

Sugerencias

Crear un array de botones cuyos títulos son 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, tal como se muestra en el cuadro

public class EjercicioApplet05 extends Applet {
	Button[] btns = new Button[11];
	Button btnComa = new Button();
	Button btnSuma = new Button();
	Button btnProducto = new Button();
	Button btnCociente = new Button();
	Button btnIgual = new Button();
	Button btnBorrar = new Button();

public void init() {
 	for(int i=0; i<10; i++){
		btns[i].setFont(new Font("Dialog", 1, 14));
		btns[i].setLabel(String.valueOf(i));
		bevelPanel1.add(btns[i], null);
	}
	btnComa.setFont(new Font("Dialog", 1, 18));
	btnComa.setLabel(".");
	btnBorrar.setFont(new Font("Dialog", 1, 18));
	btnBorrar.setLabel("C");
}

 void btnNumero_actionPerformed(ActionEvent e) {
	entrada.append(e.getActionCommand());
	textEntrada.setText(entrada.toString());
}

Respuesta a las acciones del usuario sobre los controles

Un único Listener (derivado de ActionListener) y una única función respuesta para los botones cuyos títulos son 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,  y otro Listener (derivado de ActionListener) y con una función respuesta para los botones que indican operaciones (+, *, /), otra función respuesta para el botón  igual (=) y otra para el botón borrar (C). Véase el final de la página

Respuesta a las acciones del usuario sobre un grupo de controles

Para colocar los caracteres numéricos en el control de edición, se utiliza un objeto entrada de la clase StringBuffer tal como se indica en el código al final del cuadro adjunto.

Verificar que se introducen caracteres numéricos y el carácter punto (.) que separa la parte entera de la decimal, mediante un bloque try...catch

 try{
	a=Double.valueOf(textEntrada.getText()).doubleValue();
}catch(NumberFormatException ex){
	textEntrada.requestFocus();
	textEntrada.selectAll();
	return;
}

Insertar el applet en una página web

 

 

stokesApplet aparecerá en un explorador compatible con JDK 1.1.