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