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.