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 original
public 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(); }
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 original
public 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(); }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