Foro sobre Java SE > Ayuda Con mi Programa en Java
Perdón en una parte dije que me tomaba el ese, no me toma el else sino que salta el (Exception e) con el mensaje de "error de lectura" que le di
Y que excepcion es la que salta exactamente?? NullPointerException, IndexOutOfBoundException, IOException?? Ejk repasando tu codigo pueden suceder varias:
NullPointer porque no has iniciado el objeto producto.
IndexOutOfBound porque intentes acceder a un elemento del array de split que no existe.
IO Porque no se encuentra el archivo.
Si nos indicas mas detalles sobre el problema, o pones el codigo completo, será mas sencillo ayudarte.
Amigo muchas gracias por tu respuesta.
para ser sincero no estoy seguro de la razón que hace que me salte el "Exception e", dejo el archivo de mi código en este link de dropbox. Disculpa el desorden de mi código y muchísimas gracias por tu tiempo !
https://www.dropbox.com/s/sm1usrs6h943zyk/Compra-venta.rar?dl=0
Deberías aprender tu a detectar los errores, para saber que excepción se produce, en el bloque catch escribe: e.printStackTrace();
Y te doy un arreglo, aunque hay que hacer mas... En la linea 285 del fichero Venta.java, inserta esta instrucción...
cantidadVenta.setText(datos[2]);
Gracias :D!
Bueno amigos tengo un problema con mi código, necesito comparar un jTexfield con un String contenido dentro de un archivo txt, el cual es transformado a un arreglo de string con la ayuda de un split.
bueno ocurre que al momento de hacer la comparación me lee solo la primera linea del texto y ademas entra a mi if en la primera linea y al else. probando las demas lineas salta directamente al else. llevo bastante rato pegado en aquello.
aquí esta el código:
private void buscarVentaActionPerformed(java.awt.event.ActionEvent evt) {
try {
File archivo = new File("Compras.txt");
FileReader fr = new FileReader(archivo);
BufferedReader br = new BufferedReader(fr);
String linea;
String[] datos = null;
while((linea = br.readLine()) != null) {
datos = linea.split(";");
producto.setNombre(datos[0]); //nombre
double precioDouble = Double.parseDouble(datos[1]);
producto.setPrecio(precioDouble);//precio
int cantEntero = Integer.parseInt(datos[2]);
producto.setCantidad(cantEntero); //cantidad
producto.setId(datos[3]);//Id
//aquí es donde esta el conflicto//
if (datos[3].equalsIgnoreCase(ventaid.getText())) {
nombreVenta.setText(producto.getNombre());
String precioString = String.valueOf(producto.getPrecio());
precioVenta.setText(precioString);
double cantDouble = Double.parseDouble(cantidadVenta.getText());
double precioTotal = ((producto.getPrecio()) * cantDouble);
String totalString = Double.toString(precioTotal);
totalVenta.setText(totalString);
} else {
JOptionPane.showMessageDialog(null, "No se ha Encontrado el Producto");
break;
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "¡ERROR DE LECTURA!");
}
}
muchísimas gracias por su tiempo, ojala me puedan ayudar !