Buenas comunidad de forosdelweb.
Estoy trando de eliminar un objeto o dato de un arrayList.
interfaza.arreglo.remove(posicion);
Tengo 3 paquetes: Modelo, Vista Controlador.
En vista tengo el JFrame de proveedores, en controlador manipula la interfaz eventos, etc..
cuando se muestra la interfaz tiene un boton eliminar y una tabla con todos los proveedores y otras cosas como los campos para meter datos.
Obtengo la posicón del elemento que quiero eliminar con el metodo
selectedRow:
Tengo un botn en la interfaz que cuando lo presiono me ejecuta el metodo eliminar
tablaProveedores.getSelectedRow();
Código Java:
Ver originalpublic void eliminarProveedor(){
int posicion = gui_proveedor.tablaProveedores.getSelectedRow();
//eliminamos del arreglo gui_proveedor.ArrayProveedores:
gui_proveedor.ArrayProveedores.remove(posicion); //Lo elimina
grabarEnArchivoProveedores(); //Este recorre todo el arreglo y lo llena al aarchivo:
//Actualizamos la tabla:
gui_proveedor.tablaProveedores.updateUI();
JOptionPane.
showMessageDialog(this,
"Elimando correctamente");
}
Este es El metodo que recorre el arreglo y es este y a la vez vuelve a lllenar el archivo y el arreglo ArrayProveedores
Código Java:
Ver originalpublic void grabarEnArchivoProveedores(){
rutaArchivo =rutaArchivo+"\\Proveedores.txt";
try{
for (int i = 0; i <gui_proveedor.ArrayProveedores.size(); i++) {
fichero.println(
gui_proveedor.ArrayProveedores.get(i).getCodigo()+", "+
gui_proveedor.ArrayProveedores.get(i).getNrRuc()+", "+
gui_proveedor.ArrayProveedores.get(i).getNombre()+", "+
gui_proveedor.ArrayProveedores.get(i).getDireccion()+", "+
gui_proveedor.ArrayProveedores.get(i).getTelefono()+", "+
gui_proveedor.ArrayProveedores.get(i).getPaginaWeb()+", "+
gui_proveedor.ArrayProveedores.get(i).getCorreo()+", "+
gui_proveedor.ArrayProveedores.get(i).getDepartamento()+", "+
gui_proveedor.ArrayProveedores.get(i).getProvincia()+", "+
gui_proveedor.ArrayProveedores.get(i).getDistrito()+", "+
gui_proveedor.ArrayProveedores.get(i).getProve_Respresentante()+", "+
gui_proveedor.ArrayProveedores.get(i).getProveRepre_Telefono());
}
fichero.flush();
fichero.close();
System.
out.
println("Archivo no encontrado"); }finally{
if(fichero!=null){
fichero.close();
}
}
}
Lo extraño de mi caso es de que cuando presiono el boton, la operación llega hasta el método que elimina me muestra el mensaje y se repite varias veces el mensaje de confirmación y me elimina mas de un registro y luego me manda una exepción de que el arreglo está fuera de limites.
¿Habrá alguna forma de detener el proceso de un evento la verdad estoy desesperado . e intentado quitanto el mensaje pero al final siempre se me iliminan mas de un registro