Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > ayuda por favor

hola, tengo un problema con mi codigo, no me funciona el boton procesar


import java.awt.*;
import java.applet.*;
import javax.swing.JOptionPane;

public class Ejercicio_4 extends Applet {

Button liviano,motos,pesado,mas2tone,case1,case2,case3;
Label tipovehi,numcase;
TextField vehiculo, caseta,cantidad,monto,vuelto;
Button procesar,limpiar;

Label lcaseta,lvehi,lcanti,lmonto,lvuelto;

int numvehi,numcaseta;
float pago,diferencia,cantpagar;

final float PRECIOMOTO = 100;
final float PRECIOLIVIANO=150;
final float PRECIOPESADO=300;
final float PRECIO2TONE=400;

float acumoto=0,aculivi=0,acupesa=0,acu2tone=0,acutot=0;
float acucase1=0,acucase2=0,acucase3=0;

int cmoto=0,clivi=0,cpesa=0,c2tone=0;
int ccase1=0,ccase2=0,ccase3=0;


public void init() {

setLayout(null);

tipovehi=new Label("Tipo de Vehiculo");
numcase=new Label("Numero de Caseta");

motos=new Button("MOTOS");
liviano=new Button("LIVIANO");
pesado=new Button("PESADOS");
mas2tone=new Button("MAS DE 2 TONELADAS");

case1=new Button("Caseta 1");
case2=new Button("Caseta 2");
case3=new Button("Caseta 3");

lvehi=new Label("Vehiculo");
lcaseta=new Label("Caseta");
lcanti=new Label("Monto");
lmonto=new Label("Paga con:");
lvuelto=new Label("Su vuelto:");

vehiculo=new TextField(2);
caseta=new TextField(2);
cantidad=new TextField(2);
monto=new TextField(2);
vuelto=new TextField(2);

procesar=new Button("Procesar");
limpiar=new Button("Limpiar");

add(tipovehi);
add(motos);add(liviano);add(pesado);add(mas2tone);

add(numcase);
add(case1);add(case2);add(case3);

add(lvehi);add(lcanti);add(lcaseta);add(lvuelto);add(lmonto);
add(vehiculo);add(caseta);add(cantidad);add(monto);add(vuelto);

add(procesar);add(limpiar);

tipovehi.reshape(200,30,150,20);
motos.reshape(20,75,100,25);
liviano.reshape(130,75,100,25);
pesado.reshape(240,75,100,25);
mas2tone.reshape(350,75,150,25);

numcase.reshape(200,130,150,20);
case1.reshape(20,175,100,25);
case2.reshape(130,175,100,25);
case3.reshape(240,175,100,25);

lvehi.reshape(50,220,100,20);
lcaseta.reshape(50,250,100,20);
lcanti.reshape(50,280,100,20);
lmonto.reshape(50,310,100,20);
lvuelto.reshape(50,340,100,20);

vehiculo.reshape(150,220,100,25);
caseta.reshape(150,250,100,25);
cantidad.reshape(150,280,100,25);
monto.reshape(150,310,100,25);
vuelto.reshape(150,340,100,25);

procesar.reshape(300,250,100,25);
limpiar.reshape(300,300,100,25);

vehiculo.setEditable(false);
caseta.setEditable(false);
cantidad.setEditable(false);
vuelto.setEditable(false);









}

public int mayor(int n1,int n2, int n3)
{
if((n1>n2)&&(n1>n3))
return n1;
else
if((n2>n1)&&(n2>n3))
return n2;
else
if((n3>n1)&&(n3>n2))
return n3;
else
return 0;
}

public void paint(Graphics g) {
setSize(900,500);
g.drawLine(550,10,550,490);

g.drawString("Total recaudados por MOTOS: ¢"+acumoto,575,75);
g.drawString("Total recaudados por LIVIANOS: ¢"+aculivi,575,100);
g.drawString("Total recaudados por PESADOS: ¢"+acupesa,575,125);
g.drawString("Total recaudados por MAS 2 TONELADAS: ¢"+acu2tone,575,150);

g.drawString("Total recaudado en Caseta 1: ¢"+acucase1,575,200);
g.drawString("Total recaudado en Caseta 2: ¢"+acucase2,575,225);
g.drawString("Total recaudado en Caseta 3: ¢"+acucase3,575,250);

g.drawString("Cantidad de MOTOS : "+cmoto,575,300);
g.drawString("Cantidad de LIVIANOS : "+clivi,575,325);
g.drawString("Cantidad de PESADOS : "+cpesa,575,350);
g.drawString("Cantidad de MAS 2 TONELADAS : "+c2tone,575,375);

g.drawLine(10,400,550,400);

g.drawString("Cantidad en Caseta 1 : "+ccase1,575,425);
g.drawString("Cantidad en Caseta 2 : "+ccase2,575,450);
g.drawString("Cantidad en Caseta 3 : "+ccase3,575,475);

g.drawString("Total Recaudado : "+acutot,50,425);
g.drawString("Caseta con mayor dinero recaudado : "+mayor(ccase1,ccase2,ccase3),50,450);
}

public boolean action(Event e, Object o)
{

if(e.target==motos)
{
vehiculo.setText("Moto");
cantidad.setText(""+PRECIOMOTO);
}
if(e.target==liviano)
{
vehiculo.setText("Liviano");
cantidad.setText(""+PRECIOLIVIANO);
}
if(e.target==pesado)
{
vehiculo.setText("Pesado");
cantidad.setText(""+PRECIOPESADO);
}
if(e.target==mas2tone)
{
vehiculo.setText("Mas 2 Toneladas");
cantidad.setText(""+PRECIO2TONE);
}
if(e.target==case1)
{
caseta.setText("1");
}
if(e.target==case2)
{
caseta.setText("2");
}
if(e.target==case3)
{
caseta.setText("3");
}


if(e.target==procesar)
{
if((monto.getText().equals(""))||(vehiculo.getText().equals(""))||(caseta.getText().equals("")))
{
JOptionPane.showMessageDialog(null,"FALTAN DATOS POR COMPLETAR","ERROR",JOptionPane.ERROR_MESSAGE);
}

pago=Float.parseFloat(monto.getText());

if(pago<0)
{
JOptionPane.showMessageDialog(null,"Hace falta : ¢"+(diferencia*-1),"Espere..",JOptionPane.WARNING_MESSAGE);
vuelto.setText("");
monto.setText("");
monto.requestFocus();
}
if(pago>0)
{
cantpagar=Float.parseFloat(cantidad.getText());
numvehi=Integer.parseInt(vehiculo.getText());
numcaseta=Integer.parseInt(caseta.getText());

diferencia=pago-cantpagar;

vuelto.setText(""+diferencia);
switch(numvehi)
{
case 1:
{
acumoto+=PRECIOMOTO;
cmoto++;
}break;
case 2:
{
aculivi+=PRECIOLIVIANO;
clivi++;
}break;
case 3:
{
acupesa+=PRECIOPESADO;
cpesa++;
}break;
case 4:
{
acu2tone+=PRECIO2TONE;
c2tone++;
}break;
}
switch(numcaseta)
{
case 1:
{
acucase1+=cantpagar;
ccase1++;
}break;
case 2:
{
acucase2+=cantpagar;
ccase2++;
}break;
case 3:
{
acucase3+=cantpagar;
ccase3++;
}break;
}

repaint();

}
}


if(e.target==limpiar)
{
vehiculo.setText("");
caseta.setText("");
cantidad.setText("");
monto.setText("");
vuelto.setText("");
repaint();
}

return true;
}
}


Perdon si es un poco largo, pero no encuentro el problema

alguien que me ayude pls, he buscado por todo lado y nada

agosto 30, 2016 | Registered Commenterdaynom

El problema está en la linea numvehi=Integer.parseInt(vehiculo.getText()); ya que intentas convertir el texto del TextField ("Moto", "Liviano", "Pesado" o "Mas 2 toneladas") en un número y lo que aparece ahí no es un número entero válido.

agosto 30, 2016 | Registered Commenterangelns