He creado un JTextField donde se almacenan los datos y dos botones (+ y =). El usuario introduce el primer valor y le da al botón "+", entonces el programa almacena el valor y borra el JTextField. EL usuario introduce el segundo valor y al darle al botón "=", el programa almacena el segundo valor y realiza la operación. El resultado de la operación se muestra en el JTextField.
He creado el programa siguiendo esos pasos y al ejecutarlo y darle al botón de igual me salta un error con doscientas líneas rojas en el Eclipse y el programa no hace nada.
Os dejo el código para que le echéis un vistazo y me digaís como correjirlo o en caso de que este mal, cómo hacerlo bien.
Código:
Este código me dice que la variable "cad1" en el segundo if del actionPerformed no está inicializada y no me deja arrancarlo (eso lo entiendo). Si inicializo con un "null" la variable dentro del actionPerfomed no me da el error y me deja arrancar el progrma, pero al comprobar si funciona me salta el error que os he coemtnado antes.import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ActionListener {
private JTextField textfield1;
private JButton boton1, boton2;
public Formulario (){
setLayout(null);
textfield1= new JTextField();
textfield1.setBounds(10, 10, 100, 50);
add(textfield1);
boton1= new JButton("+");
boton1.setBounds(10, 130, 50, 50);
add(boton1);
boton2=new JButton ("=");
boton2.setBounds(120, 130, 50, 50);
add(boton2);
boton1.addActionListener(this);
boton2.addActionListener(this);
}
public void actionPerformed (ActionEvent e){
String cad1, cad2;
if (e.getSource()==boton1){
cad1= textfield1.getText();
textfield1.setText(null);
}
if (e.getSource()==boton2){
cad2= textfield1.getText();
int x= Integer.parseInt(cad1);
int y= Integer.parseInt(cad2);
int suma= x+y;
String resultado= String.valueOf(suma);
textfield1.setText(null);
textfield1.setText(resultado);
}
}
public static void main (String[]ar){
Formulario calc= new Formulario();
calc.setBounds(800, 400, 500, 500);
calc.setResizable(false);
calc.setVisible(true);
}
}
Recordad que soy novato por lo que os agradecería que no lo deís todo por sabido.
A ver si podeís ayudarme con esto. Muchas gracias por adelantado.
Salu2, VanRadeix.



