Desde cero
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;
}
}
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;
}
}
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.
Intentalo con un swich primero y luego convierte.
Saludos.
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
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
