Agenda Telefónica con Archivo CSV

@Autor: Prof. Luis Mitre

Esta Practica es una Agenda Telefónica que almacena la información en un archivo CSV

Paso 1. Creamos un nuevo Proyecto java dando Click en File-New-Java Proyect en Eclipse.

Paso 2. Creamos los Paquetes Modelo, Vista y Controlador en el Proyecto creado.

Iniciaremos creando la parte visual de nuestro Proyecto.

Paso 3. Creamos la Clase PanelLogin  en el paquete de vista en la cual Extenderemos (Heradaremos) dela Clase JPanel para que la clase se comporte como un contenedor quedando:

Paso 4: ahora creamos los componentes que necesitaremos en esta ventana, considerando que en esta ventana incluiremos un nuevo componente para el uso de las contraseñas..

Paso 5: Creamos el Constructor de la clase para empezar a armar nuestra ventana asignando el sistema de ordenamiento a travez de setLayout(null), que indica que usaremos coordenadas:

La ventana se vera Asi, una vez ya corriendo el programa:

agenda1

Paso 6:  Ahora creamos la clase PanelAltas, usando el mismo procedimiento:

  1. Creamos los objetos necesarios
  2. Creamos el constructor y agregamos coordenadas
  3. agregamos los componentes al contenedor.

La ventana se vera de la siguiente manera:

agenda2

Paso 7: Ahora creamos la Clase PanelBajas que al igual que la clase altas realizamos el mismo procedimiento.

nota: En esta clase agregamos un nuevo elemento que es el botón para buscar..

La ventana se vera Asi:

agenda3

Paso 8: Continuamos con la Clase PanelCambios:

La Ventana se Vera Asi:

agenda4

Paso 9: Ahora la clase PanelConsultas:

La ventana se vera asi:

agenda5

Paso 10: Ahora crearemos la Clase VentanaPrincipal que Heredara de la clase JFrame que sera nuestra ventana en donde insertaremos todas las anteriores es decir sera la plataforma donde correra nuestro programa:

Nota: Dentro de esta clase insertamos la imagen de fondo del panel login, dentro de este codigo hay anotaciones donde inicia el codigo para este fin..

Con esto hemos terminado por ahora la Parte Gráfica de nuestro sistema, a partir de este momento si creamos una clase auxiliar y creamos un objeto de la clase VentanaPrincipal miraremos nuestro programa corriendo, cabe mencionar que no tendrá todavía ninguna acción.

Ahora sera necesarios descargar el archivo que se encuentra en el siguiente link: https://sourceforge.net/projects/javacsv/

del cual descargaremos un Archivo Comprimido y Abriremos de preferencia con Winrar

archivo

una vez abierto el archivo extraemos el archivo llamado javacsv.jar en cualquier lugar de nuestra maquina de preferencia dentro de la carpeta de trabajo de java

descomp

una vez que tengamos el archivo daremos clic derecho en el nombre del proyecto de java elegimos Configurar BuildPath-Configure BuildPath:

build

se abrirá una ventana en la cual elegimos la pestaña Libraries y elegimos el botón Add External Jar’s y seleccionamos el archivo que descomprimimos y damos OK.

build2

Ahora ya estamos Listo para continuar….

Paso 11: Ahora crearemos la clase Contactos dentro del paquete modelo la cual será necesario para crear objetos por cada contacto que utilizaremos, quedando de la siguiente manera:

 

 

Paso 12: De la misma manera que el paso anterior crearemos la clase Usuarios dentro del paquete modelo que hará lo mismo que contactos pero para usuarios:

Paso 13: Procederemos a crear nuestra clase MODELO dentro del paquete del mismo nombre que será en el cual pondremos todos los métodos necesarios para poder escribir y leer al archivo de texto CSV.

Paso 14: Crearemos los objetos necesarios para poder trabar en esta clase:

Cabe mencionar que los objetos ArrayList son muy similares a un arreglo la diferencia es que estos almacenaran objetos del tipo Contactos y Usuarios respectivamente.

Paso 14: Crearemos nuestro primer método que se llamara cargar() el cual tiene la función de leer los archivos CSV crear objetos por cada contacto o usuario que encuentre en estos archivos y almacenarlos dentro de sus respectivos arreglos.

Nota: estos archivos deberán estar creados dentro de la carpeta del proyecto junto a las carpetas SRC y BIN y su Extencion es .csv

carpeta

Paso 15: ahora para que este método funcione al momento que inicia nuestro programa crearemos un constructor el cual lo mande llamar:

¿Por qué no ponemos el código del método cargar dentro del constructor ¡Mejor! ?

  • Por que este método lo utilizaremos en varias ocasiones y si lo ponemos en el constructor solo se utilizara una vez.

Paso 16: ahora crearemos el método login()  que será el encargado de recibir el usuario y la contraseña que el usuario del programa ingrese, y este método verificara que exista dentro de los usuarios y si esto es correcto nos devolverá una valor Verdadero o de lo contrario Falso:

Paso 17:  ahora crearemos dos métodos uno llamado actualizar() y el otro actualizarUsuarios(),  los cuales son los encargados de estar escribiendo los cambios a los archivos CSV es decir si agregamos un nuevo contacto se encargara de escribirlo a este archivo o en su defecto llegáramos a eliminar un contacto o usuario estos métodos también lo eliminaran de los archivos..

Quedarían de la siguiente manera:

Paso 18: lo siguiente sería crear los métodos encargados de recibir la información del programa para sus acciones como Altas, Bajas, Cambios.

Espesamos con Altas:

Ahora Bajas:

Y Cambios:

Paso 19: ahora crearemos un método que nos permitirá buscar a un contacto por su teléfono, este nos servirá para bajas y cambios ya que tendrán esta función:

En este método retorna un Verdadero o Falso dependiendo de si lo encontró de ser afirmativa la respuesta almacenara los valores dentro de las variables globales que creamos al principio de la clase Modelo, para poder acceder a estos valores desde la clase controlador:

 

Paso 20: Ahora crearemos el método consultas(), este método a diferencia de los demás devuelve un objeto del tipo DefaultTableModel  que es el necesario para poder construir nuestra tabla que insertamos en la pestaña Consultas de nuestra aplicación. Quedaría de la siguiente manera:

Nota: como habrás notado he puesto comentarios dentro del código, que en lo particular es más cómodo para que comprendas el código..

 

Paso 21:  ahora crearemos un método llamado buscarFoto(),  que nos permitirá buscar la fotografía del contacto que le daremos Doble  clic dentro de la tabla de búsqueda ya que la imagen no la podemos insertar dentro de esta tabla.. Quedaría la siguiente manera:

Paso 22: bueno hasta ahorita todo se enfocó en trabajar con los contactos, ya que es lo principal del programa, por lo consiguiente crearemos dos métodos para usuarios uno será el de agregar un nuevo usuario y el otro para eliminarlo, quedando los métodos: nuevoUsuario() y eliminarUsuarios()

Bueno con esto hemos terminado la clase modelo, ahora procederemos a crear una clase que nos ayudara con la corrección de la ruta o nombre del archivo que utilizaremos como imagenes

Paso 23: Creamos la Clase CorregirRuta dentro del mismo paquete modelo:

Ahora Procederemos a crear la Clase Controlador dentro del paquete del mismo nombre:

Paso 24: Creamos la Clase Controlador y creamos los objetos y variables que utilizaremos

Paso 25:  empezamos a asignarle acciones a cada uno de los botones de la interfaz gráfica iniciamos creando el metodo accionesBotones() y con los botones  del Panel Login.

Paso 26: ahora asignamos acciones a los botones de Cancelar, Grabar y a la Etiqueta Foto de Altas

Paso 27:  Ahora le damos las acciones a los botones de BAJAS que serian los de Cancelar, Buscar, Grabar o Eliminar.

Paso 28: De igual manera hacemos con Cambios los Botones de Buscar, Cancelar, Grabar y la etiqueta de Foto.

Paso 29: ahora hacemos lo mismo con los componentes de Consultas, la diferencia es que ahora no tenemos botones, si no que tenemos un JTextField y un JTable a los que les daremos acciones.

Paso 30: Ahora le damos las acciones a cada uno de los botones Menu del programa..

Paso 31: Ahora Crearemos la siguiente Ventana:

agenda6

Que sera la que nos permita crear un nuevo usuario..

Paso 32: crearemos las siguiente clase VentanaFoto, que nos servirá para ver la fotografía del contacto cuando le demos doble clic en la tabla de consultas:

 

Nota: la clase anterior la crearemos en el paquete vista

Muy Bien!!! hasta aqui hemos terminado solo falta crear nuestra clase Auxiliar dentro de controlador para que podamos iniciar nuestro programa…

 

 NOTA: Para que se pueda ver la Imagen deberás crear la carpeta Imágenes dentro del proyecto, en la mismo ubicación de las carpetas:

carpeta

El Archivo usuarios.csv tendrás que agregarle tres valores para poder ingresar a la agenda: quedaría.

(usuario,password,tipoUsuario)

Ejemplo:    luis,123,0

@Autor: Prof. Luis Mitre

Contador de visitas y estadísticas
Diseño
;