Me anime a programar una calculadora sencilla, se trata de 2 campos de textos donde se ingresa el numero, abajo hay 5 botones, hay para sumar, restar, multiplicar y dividir, mas un boton adicional para borrar todo, los resultados de las operaciones se muestra en un campo inmodificable, pero mi problema es que para que pueda guardar los numeros a operar, hay que apretar el boton Enter y lo que yo busco es que cuando el usuario escribe el numero en los campos, no tenga que acudir al enter, solo es llegar y escribir los numeros y clickear el boton de la operacion deseada.
Yo estoy leyendo el libro de Deitel 7ma edicion si es que alguien lo leyo para que me pueda ayudar y les dejo mi codigo, yo programé una clase que se llama Calculadora y que hereda todo de JFrame. Por si acaso, estoy usando el Netbeans 7.2
Les dejo la clase calculadora
package ejercicio109;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Calculadora extends JFrame {
private JLabel etiqueta1;
private JLabel etiqueta2;
private JLabel etiqueta3;
private JTextField campo1;
private JTextField campo2;
private JTextField campo3;
private JButton botonSuma;
private JButton botonResta;
private JButton botonProducto;
private JButton botonDivision;
private JButton botonBorrar;
private int numero1;
private int numero2;
private int resultado;
public Calculadora(){
super("CALCULADORA SIMPLE");
setLayout(new FlowLayout());
etiqueta1 = new JLabel("Numero 1");
etiqueta2 = new JLabel("Numero 2");
etiqueta3 = new JLabel("Resultado");
campo1 = new JTextField(10);
campo2 = new JTextField(10);
campo3 = new JTextField(10);
campo3.setEditable(false);
botonSuma = new JButton("Sumar");
botonResta = new JButton("Restar");
botonProducto = new JButton("Multiplicar");
botonDivision = new JButton("Dividir");
botonBorrar = new JButton("Borrar");
add(etiqueta1);
add(campo1);
add(etiqueta2);
add(campo2);
add(etiqueta3);
add(campo3);
add(botonSuma);
add(botonResta);
add(botonProducto);
add(botonDivision);
add(botonBorrar);
numero1 = 0;
numero2 = 0;
AdministradorEventos administrador = new AdministradorEventos();
campo1.addActionListener(administrador);
campo2.addActionListener(administrador);
botonSuma.addActionListener(administrador);
botonResta.addActionListener(administrador);
botonProducto.addActionListener(administrador);
botonDivision.addActionListener(administrador);
botonBorrar.addActionListener(administrador);
}
private class AdministradorEventos implements ActionListener {
public void actionPerformed(ActionEvent evento){
if(evento.getSource() == campo1){
numero1 = Integer.parseInt(evento.getActionCommand());
}
if(evento.getSource() == campo2){
numero2 = Integer.parseInt(evento.getActionCommand());
}
if(evento.getSource() == botonSuma){
resultado = numero1 + numero2;
campo3.setText(Integer.toString(resultado));
}
if(evento.getSource() == botonResta){
resultado = numero1 - numero2;
campo3.setText(Integer.toString(resultado));
}
if(evento.getSource() == botonProducto){
resultado = numero1 * numero2;
campo3.setText(Integer.toString(resultado));
}
if(evento.getSource() == botonDivision){
resultado = numero1 / numero2;
campo3.setText(Integer.toString(resultado));
}
if(evento.getSource() == botonBorrar){
numero1 = 0;
numero2 = 0;
resultado = 0;
campo1.setText("");
campo2.setText("");
campo3.setText("");
}
}
}
}
Y ahora les dejo el programa principal
package ejercicio109;
public class Ejercicio109 {
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
calculadora.setSize(600,100);
calculadora.setResizable(false);
calculadora.setDefaultCloseOperation(Calculadora.EXIT_ON_CLOSE);
calculadora.setVisible(true);
}
}