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.
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