Hola, tengo un problema tengo dos textfields, y un label en los textfields, pongo unos numeros, los cuales sumo cada que se apriete una tecla, y la suma aparece en el label , pero tengo un problema, si en textfield1 pongo =123 y text2=456 label=579 lo cual esta perfecto, pero si por ejemplo al 123 le agrego un 8 asi: text1=1283 y text2 sigue=456 label=1694 (como si el 8 lo hubiera puesto hasta el ultimo de la cadena anterior) en vez de mostrar label=1739
Aqui les dejo mi codigo :
Código:
text2.addKeyListener(new java.awt.event.KeyListener() {
public void keyTyped(KeyEvent e) {
String cadena1=text1.getText().trim();
String cadena2=text2.getText().trim();
char i=e.getKeyChar();
String str=Character.toString(i);
Integer numero1 = null, numero2=null;
boolean numeroscorrectos=true;
try{
numero1=Integer.parseInt(cadena1);
}catch(NumberFormatException nfe){
System.out.println("El caracter introducido en la casilla 1 no es numerico");
numeroscorrectos=false;
}
try{
numero2=Integer.parseInt(cadena2+str);
}catch(NumberFormatException nfe){
System.out.println("El caracter introducido en la casilla 2 no es numerico");
numeroscorrectos=false;
}
if(numeroscorrectos){
Integer suma=numero1+numero2;
label.setText(Integer.toString(suma));
numeroscorrectos=true;
}
else{
System.out.println("nose que ondas");
if(text1.getText().equals("")){
numero1=0;
}
else if(text2.getText().equals(""))
{
numero2=0;
}
else{
numero1 = Integer.parseInt(text1.getText());
numero2= Integer.parseInt(text2.getText());
}
label.setText(Integer.toString(numero1+numero2));
numeroscorrectos=true;
}
}