Desde cero

IDIOta
20 de Septiembre del 2003
Hola a todos llevo una semena tratando de aprender java y se me ha echo un poco dificil por el hecho que no tengo a quien preguntarle mis dudas por eso acudo aquien pueda responder,
EL PROBLEMA:
la idea es que en un applet dentro de un cuadro de texto se ingresen las letras a,b,c,d,e las cuales tienen los valores 4,3,2,1,0 respectivamente una vez que se ingresa una z el programa muestra el promedio de los valores ingresados ,..... pero no se que sucede no hace nada aqui les dejo el codigo y agradecere cualquier respues ta shao;


import java.awt.*;
import java.applet.Applet;

public class Promedio_Applet extends Applet
{
Label l1;
Label l2;
Label l3;
TextField t1;
int cont, promedio, nota,total;


public void init()
{
l1 = new Label("Ingree una Nota,Ingrese z para Salir ");
t1= new TextField(10);
add (l1);
add (t1);
cont = 0;
promedio = 0;
total = 0;
}

public boolean action(Event e, Object o)
{
nota = Integer.parseInt(o.toString());


if (nota == 'a'){
total = total + 4;
cont = cont + 1;
}

if (nota == 'b'){
total = total + 3;
cont = cont + 1;
}

if (nota == 'c'){
total = total + 2;
cont = cont + 1;
}
if (nota == 'd'){
total = total + 1;
cont = cont + 1;
}

if (nota == 'e'){
total = total + 0;
cont = cont + 1;
}

if (nota == 'z'){
promedio = total / cont;
l2 = new Label("El promedio de notas fue :" + promedio);
add (l2);
}

t1.setText("");
return true;
}
}

profesorchiflado
20 de Septiembre del 2003
Tiene que darte error en tiempo de ejecución porque si intentas convertir una letra a numero eso no es posible.
Intentalo con un swich primero y luego convierte.
Saludos.

marc gutierrez
20 de Septiembre del 2003
Yo crearia el label en el init(), lo anades al applet y en el action event solo le cambias el texto con label.setText("")

en lugar de
nota = Integer.parseInt(o.toString());

prueba a definir nota como char y en el action event:
nota = ((String)o).charAt(0);

o cambia los if por estos:
if (((String)o).equals("a"))
bla bla bla