Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2011, 13:33
vanraidex
 
Fecha de Ingreso: noviembre-2011
Mensajes: 18
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Mini Calculadora (Suma) - ¿Cómo separar y almacenar los 2 valores a sumar?

Hola, soy un novato en esto de Java y estoy intentando crear una calculadora. Estoy empezando por algo sencillo por lo que la calculadora de momento solo suma. El proceso es el siguiente:

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:
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);
	}
	
	

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

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.