185
Sistema de control para el Video Club “Cine Manía” INTERACCION HOMBRE-MAQUINA M.T.C. Laura López Díaz. Integrantes de Equipo: Jessica del Carmen Montejo García Roosvelt Omar Pérez Hernández. Iris Dafne Castellanos Hernández.

video club cine mania.pdf

Embed Size (px)

Citation preview

  • Sistema de control para el Video Club Cine Mana

    INTERACCION HOMBRE-MAQUINA M.T.C. Laura Lpez Daz.

    Integrantes de Equipo: Jessica del Carmen Montejo Garca

    Roosvelt Omar Prez Hernndez.

    Iris Dafne Castellanos Hernndez.

  • PGINA 1

    Contenido

    1. INTRODUCCION. ......................................................................................................................... 3

    1.1. Planteamiento del problema. ......................................................................................... 3

    1.2. Justificacin del proyecto. ................................................................................................ 3

    1.3. Objetivo general. ................................................................................................................... 4

    1.4. Objetivos especficos. ......................................................................................................... 4

    1.5. Alcances. .................................................................................................................................... 5

    2. DATOS DE LA ORGANIZACIN. ................................................................................................ 6

    2.1. Nombre de la empresa. ...................................................................................................... 6

    2.2. Antecedentes. ......................................................................................................................... 6

    3. CONSTRUCCION Y DESARROLLO DE LA APLICACIN. ................................................. 8

    3.1. Presentacin de LA INTERFAZ DEL Sistema. .......................................................... 8

    3.2. CODIGO DE DESARROLLO DEL Sistema. ................................................................. 17

    Clase principal:......................................................................................................................... 17

    Clase insertarCliente ............................................................................................................... 24

    Clase insertaPelicula ............................................................................................................... 34

    Clase borrarCliente. ................................................................................................................. 53

    Clase borrarPelicula. .............................................................................................................. 61

    Clase actualizarCliente .......................................................................................................... 69

    Clase actualizarPelicula ........................................................................................................ 88

    Clase alquilerDePeliculas .................................................................................................. 110

    Clase cierreSemanal ............................................................................................................. 135

    Clase cierreMensual ............................................................................................................. 156

    Clase diaAlquilerAltoBajo ................................................................................................. 166

    Clase panelImagen ................................................................................................................ 178

    Clase pintaImagen ................................................................................................................. 179

    Clase acercaDe ......................................................................................................................... 181

  • PGINA 2

  • PGINA 3

    1. INTRODUCCION.

    1.1. PLANTEAMIENTO DEL PROBLEMA.

    La empresa video club Cine Mana no cuenta con un sistema en el cual se puedan

    almacenar y decepcionar los datos de pelculas y clientes asociados. El registro de

    los datos es de forma manual en una bitcora por lo cual es tardado y su forma de

    archivar la informacin no es segura. Se presenta un mal manejo de informacin

    lo que provoca desconocer el total de productos en exhibicin y existencia. As

    mismo ignorar en qu forma se da la entrada y salida del de las pelculas y esto

    hace que el trabajo sea ms laborioso y puede causar errores a la hora de llenar

    la bitcora de entrada y salida, en muchas ocasiones la informacin incluida en

    este no coincide con la cantidad y nombre de las pelculas y los clientes.

    La problemtica surge que debido a que la mayora de las veces no coincide el

    inventario obtenido de los totales registrados en la bitcora con el inventario

    obtenido del conteo directo de los dvds existentes y al final cuando el administrador

    desea conocer el resultado del inventario se deben consultar uno a uno los

    registros de entrada y salida en la bitcora para encontrar el error lo cual implica

    demasiado tiempo y generalmente errores en la clave, esto ocasiona malos

    entendidos relacionados con las fechas y precios establecidos .

    1.2. JUSTIFICACIN DEL PROYECTO.

    Debido a la problemtica que genera el uso de un sistema manual para el control

    de inventario como lo es la lentitud del sistema, la falta de seguridad en lo datos y

    el descontrol, la implementacin de un sistema de informacin que controle el

    proceso de renta, los asociados permitir a la empresa mantener el control

    oportunamente, as como tambin conocer al final del periodo un estado confiable

    de la situacin econmica de la empresa.

  • PGINA 4

    La base de toda empresa es el control de los productos que entran y salen; de aqu

    la importancia del manejo del inventario por parte de la misma es importante, ya

    que los inventarios son el motor de una empresa es por ello que se debe de

    proteger cuidadosamente la informacin. Los procesos automatizados, son

    factores de vital importancia en una empresa, en esta se ha observado que la

    innovacin y desarrollo de tecnologas de la informacin permitir el desarrollo de

    la empresa.

    Actualmente se puede afirmar que el proceso de contar y registrar datos financieros

    se desarrolla de una manera ms simple y sencilla con el apoyo del contador, pero,

    es preciso aclarar que se siguen rigiendo por los principios establecidos para

    ejecutar la contabilidad empresarial. La creacin de este software que permita

    llevar el control de inventario lograra que los usuarios estn satisfechos por la

    rapidez al momento de solicitar informacin sobre las pelculas existentes, puesto

    que sern revelados cuando los desee.

    1.3. OBJETIVO GENERAL.

    Disear, desarrollar e implementar un sistema para el video club Cine Mana,

    ubicada en el municipio de Jalpa de Mndez, Tabasco, permitir llevar el control

    de rentas que se registran da a da, reduciendo el tiempo de trabajo y as brindar

    un mejor servicio a sus clientes.

    1.4. OBJETIVOS ESPECFICOS.

    Organizar la informacin necesaria.

    Disear el modelo del sistema.

    Desarrollar un sistema que sea amigable con los administradores.

    Disear el prototipo del sistema.

  • PGINA 5

    1.5. ALCANCES.

    El sistema a desarrollar tendr la capacidad de:

    Altas de productos.

    Baja de productos.

    Consulta de productos.

    Renta de productos.

    Control de inventario mediante reportes semanales y mensuales de total

    de Rentas.

  • PGINA 6

    2. DATOS DE LA ORGANIZACIN.

    2.1. NOMBRE DE LA EMPRESA.

    Video Club Cine Mana ubicado en el barrio Santa Ana a un costado del DIF

    municipal del municipio de Jalpa de Mndez, Tabasco.

    2.2. ANTECEDENTES.

    Hoy en da toda empresa debe de hacer uso de un bien sistema de administracin,

    sobre todo por la gran competencia que hay hoy da, El nmero de videoclubs es

    muy amplio por lo que con ms motivo es necesario darse a notar.

    En este sentido los software de administracin con bases de datos (BD)

    constituyeron parte integrante y fundamental del sistema de informacin y tienen

    su razn de ser en la misma existencia de este. Hoy en da, las necesidades de

    informacin de la sociedad actual se dejan sentir de forma cada vez ms imperiosa.

    Y es que el problema de la informacin est estrechamente relacionado con el

    desarrollo econmico y social. Es por ello que la investigacin, planificacin y la

    toma de decisiones exigen una informacin precisa, oportuna, completa, coherente

    y adaptada a las necesidades especficas de cada usuario y de cada circunstancia.

    Fue as que las BD, surgi en respuesta al nuevo planteamiento de los sistemas

    orientados hacia los datos para mejorar la calidad de las prestaciones de los

    sistemas informticos y aumentar su rendimiento. Se constituyeron como una de

    las herramientas ms ampliamente difundidas en la actual sociedad de la

    informacin, utilizadas como fuentes secundarias en cuanto a recuperacin y

    almacenamiento de informacin en todos los campos a nivel cientfico, social,

    econmico, poltico y cultural.

    Video Club Cine Mana perteneciente a las reas comerciales del municipio de

    Jalpa de Mendez, Tabasco, ofrece servicio de calidad, sin embargo se ha

  • PGINA 7

    interesado por mejorar sus servicio administrativos siendo su intencin digitalizar

    su informacin de productos pensando en evitar la prdida de tiempo en la

    bsqueda manual de los productos solicitados por los usuarios y poder consultar

    la informacin a travs de medios digitales. As mismo poder mejorar la

    presentacin de sus servicios tanto para empleados y usuarios.

    Es as que surge este proyecto, que tiene como propsito, la creacin de una base

    de datos donde se puedan guardar y obtener fcilmente la informacin de pelculas

    existentes dentro del video club.

  • PGINA 8

    3. CONSTRUCCION Y DESARROLLO DE

    LA APLICACIN.

    3.1. PRESENTACIN DE LA INTERFAZ DEL SISTEMA.

    Ventana principal: desde aqu podremos ver las diferentes

    opciones de administracin que nuestro sistema ofrece.

  • PGINA 9

    Ventana insertar cliente: desde esta ventana podemos insertar

    un nuevo cliente a nuestra base de datos.

    Ventana insertar pelcula: sirve para registrar una nueva

    pelcula a nuestro sistema.

  • PGINA 10

    Ventana borra cliente: ingresando nicamente el nmero de

    cliente o ID podemos borrar la informacin del sistema.

    Cuando damos mostrar datos nos despliega la siguiente ventana:

    Si damos aceptar nos pide confirma la accin.

  • PGINA 11

    Ventana borrar pelcula: funciona igual que la ventana de borrar

    clientes. Solo que aqu se ingresa el ID de la pelcula.

    Damos mostrar datos y nos muestra los datos:

    Si damos aceptar nos despliega el siguiente mensaje de confirmacin.

  • PGINA 12

    Ventana actualizar clientes: ingresando nicamente el id del

    cliente podemos actualizar o modificar sus datos.

    Ventana actualizar pelculas: ingresado el id de la pelcula

    podemos tambin modificar sus datos.

  • PGINA 13

    Ventana alquiler de pelculas: desde aqu se puede generar un

    nuevo alquiler de pelculas con los datos de cliente y de la

    pelcula. As mismo el costo y fecha de entrega de la misma.

    Ventana cierre semanal de alquiler: desde aqu podemos ver

    la informacin del cierre de alquiler de una semana.

  • PGINA 14

    Ventana cierre mensual de alquiler: nos muestra el cierre

    mensual del total de alquileres. Seleccionando el mes que

    nosotros deseemos.

    Ventana listado de clientes: nos despliega en forma de reporte

    del total de clientes asociados al video club.

  • PGINA 15

    Ventana listado de pelculas: muestra en forma de reporte el

    listado total de pelculas.

    Ventana mes con alquiler ms bajo y alto: desde aqu

    podemos ver el da con ms alquiler y menor alquiler de un mes

    en especfico.

  • PGINA 16

    Ventana acerca de: desde aqu se pueden ver los datos de los

    desarrolladores del sistema:

  • PGINA 17

    3.2. CODIGO DE DESARROLLO DEL SISTEMA.

    Para la elaboracin de esta parte fue requerida una clase para cada apartado-

    Clase principal: import java.awt.Container;

    import java.awt.Image;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import javax.swing.ImageIcon;

    import javax.swing.JDesktopPane;

    import javax.swing.JFrame;

    import javax.swing.JInternalFrame;

    import javax.swing.JMenu;

    import javax.swing.JMenuBar;

    import javax.swing.JMenuItem;

    import javax.swing.JOptionPane;

    import javax.swing.WindowConstants;

    public class principal extends JFrame implements ActionListener{

    //*****GLOBAL*******

    AcercaDe AD;

    insertarClientes iClientes;

    insertarPelicula iPelicula;

    alquilerDePelicula alquiler;

    borrarClientes borrarC;

    borrarPelicula borrarP;

    actualizarClientes actualizarC;

    actualizarPelicula actualizarP;

    cierreSemanal cierreS;

    cierreMensual cierreM;

    listadoClientes listadoC;

    listadoPeliculas listadoP;

    listadoPeliculasCliente listadoPC;

    diaAlquilerAltoBajo alquilerDAB;

    pintaImagen pim;

    static Selecionpelicula sp;

    static informeCierreMensual infoCierreMens;

    JDesktopPane JDP_escritorio;

    JMenuBar JMB_menu;

    JMenu /* Barras de men principales*/ JM_sistema, JM_mantenimiento,

    JM_movimientos, JM_repotes, /*Barras de men secundarias*/JM_insertar, JM_borrar,

    JM_atualizar ;

    JMenuItem JMI_AcercaDe, JMI_salir, JMI_insertarClientes,JMI_insertarPelicula,

    JMI_actualizarPelicula, JMI_borrarClientes, JMI_borrarPelicula, JMI_actualizarClientes,

    JMI_alquiler, JMI_cierreSemanal, JMI_cierreMensual, JMI_listadoClientes,

    JMI_listadoPeliculas, JMI_listadoPeliculasCliente, JMI_diaAlquiler_alto_bajo;

    Container c;

  • PGINA 18

    static principal p;

    //*****CONTENEDOR****

    public principal(){

    super("VIDEOCLUB!CineMania");

    c = getContentPane();//se crea el contenedor

    JDP_escritorio=new JDesktopPane();

    JMB_menu =new JMenuBar();

    ImageIcon icono=new ImageIcon("icono.jpg");

    Image fondo2=icono.getImage();

    this.setIconImage(fondo2);

    try{

    pim = new pintaImagen();

    JDP_escritorio.setBorder(pim);

    }

    catch(Exception e){

    System.out.print(e);

    }

    //Instanciar elementos del men

    JM_sistema = new JMenu("Sistema");

    JM_mantenimiento= new JMenu("Mantenimiento");

    JM_movimientos= new JMenu("Movimientos");

    JM_repotes = new JMenu("Reportes");

    //pegar los elementos al men

    JMB_menu.add(JM_sistema);

    JMB_menu.add(JM_mantenimiento);

    JMB_menu.add(JM_movimientos);

    JMB_menu.add(JM_repotes);

    //instanciar los elementos de la barra Sistema

    JMI_AcercaDe = new JMenuItem("Acerca de");

    JMI_salir = new JMenuItem("Salir!");

    //pegar los elementos a la barra Sistema

    JM_sistema.add(JMI_AcercaDe);

    JM_sistema.add(JMI_salir);

    //instanciar los elementos de la barra Mantenimiento

    JM_insertar = new JMenu("Insertar");

    JM_borrar = new JMenu("Borrar");

    JM_atualizar = new JMenu("Actualizar");

    //Pegar los elementos a la barra Mantenimiento

    JM_mantenimiento.add(JM_insertar);

    JM_mantenimiento.add(JM_borrar);

  • PGINA 19

    JM_mantenimiento.add(JM_atualizar);

    //instanciar los elementos de la barra insertar

    JMI_insertarClientes = new JMenuItem("Clientes");

    JMI_insertarPelicula = new JMenuItem("Pelicula");

    //pegar los elementos de la barra insertar

    JM_insertar.add(JMI_insertarClientes);

    JM_insertar.add(JMI_insertarPelicula);

    //instanciar los elementos de la barra borrar

    JMI_borrarClientes = new JMenuItem("Clientes");

    JMI_borrarPelicula = new JMenuItem("Pelicula");

    //pegar los elementos de la barra borrar

    JM_borrar.add(JMI_borrarClientes);

    JM_borrar.add(JMI_borrarPelicula);

    //instanciar los elementos de la barra actualizar

    JMI_actualizarClientes= new JMenuItem("Clientes");

    JMI_actualizarPelicula = new JMenuItem("Pelicula");

    //pegar los elementos a la barra actualizar

    JM_atualizar.add(JMI_actualizarClientes);

    JM_atualizar.add(JMI_actualizarPelicula);

    //instanciar los elementos de la barra movimientos

    JMI_alquiler = new JMenuItem("Alquiler de pelcula");

    JMI_cierreSemanal = new JMenuItem("Cierre semanal de alquileres");

    JMI_cierreMensual = new JMenuItem("Cierre mensual de alquileres");

    //pegar los elementos de la barra movimientos

    JM_movimientos.add(JMI_alquiler);

    JM_movimientos.add(JMI_cierreSemanal);

    JM_movimientos.add(JMI_cierreMensual);

    //instanciar los elementos de la barra reportes

    JMI_listadoClientes = new JMenuItem("Listado de clientes");

    JMI_listadoPeliculas = new JMenuItem("Listado de pelculas");

    JMI_listadoPeliculasCliente = new JMenuItem("Listado de pelculas por cliente");

    JMI_diaAlquiler_alto_bajo = new JMenuItem("Da del mes con alquiler ms alto y ms

    bajo");

    //pegar los elementos a la barra reportes

    JM_repotes.add(JMI_listadoClientes);

    JM_repotes.add(JMI_listadoPeliculas);

    JM_repotes.add(JMI_listadoPeliculasCliente);

    JM_repotes.add(JMI_diaAlquiler_alto_bajo);

    // *******Asignacin de clases internas anninas a los elementos del men***********//

    //se asigna una clase interna al Item salir que cuetiona si el usuario desea cerrar o no

    la aplicacin..

    JMI_salir.addActionListener(new ActionListener() { //

    private int YES_NO_CANCEL_OPTION;

    private int YES_OPTION;

  • PGINA 20

    public void actionPerformed(ActionEvent e) { /*/* Boton para salir de la aplicacin//*/

    if(JOptionPane.showConfirmDialog(null,"Desea salir de la aplicacin?" , "Salir",

    YES_NO_CANCEL_OPTION)==YES_OPTION)

    System.exit(0);

    }

    });

    //se asigna una clase interna al Item clientes, perteneciente al men de insertar. Se llama

    a la clase AcercaDe

    JMI_AcercaDe.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    AD=new AcercaDe();

    AD.setResizable(false);

    if(siJIF_EstaAbierto("Acerca de")==false)

    JDP_escritorio.add(AD);

    }

    });

    //se asigna una clase interna al Item clientes, perteneciente al men de insertar. Se

    llama a la clase insertarClientes

    JMI_insertarClientes.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    iClientes =new insertarClientes(null, null, null, null, null, null);

    iClientes.setResizable(false);

    if(siJIF_EstaAbierto("Insertar Cliente")==false)

    JDP_escritorio.add(iClientes);

    }

    });

    //se asigna una clase annima al Item pelcula, perteneciente al men insertar. Se llama

    a la clase insertarPelicula

    JMI_insertarPelicula.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    iPelicula = new insertarPelicula(null, null, null, null, null, null);

    iPelicula.setResizable(false);

    if(siJIF_EstaAbierto("Insertar pelcula")==false)

    JDP_escritorio.add(iPelicula);

    }

    });

    //************************

    //se le asigna una clase annima al Item "alquiler de pelcula" del men

    movimientos.Se llama a la clase insertarPelicula

  • PGINA 21

    JMI_alquiler.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    alquiler = new alquilerDePelicula();

    if(siJIF_EstaAbierto("Alquiler de pelicula")==false)

    JDP_escritorio.add(alquiler);

    }

    });

    //se le asigna una clase annima al Item "Borrar Clientes" del men Insertar.Se llama

    a la clase borrarClientes

    JMI_borrarClientes.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    borrarC = new borrarClientes();

    JDP_escritorio.add(borrarC);

    }

    });

    //se le asigna una clase annima al Item "Borrar Pelicula" del men Insertar.Se llama

    a la clase borrarPelicula

    JMI_borrarPelicula.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    borrarP = new borrarPelicula();

    JDP_escritorio.add(borrarP);

    }

    });

    //se le asigna una clase annima al Item "actualizar clientes " del men Insertar.Se

    llama a la clase actiualizarClientes

    JMI_actualizarClientes.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    actualizarC = new actualizarClientes();

    JDP_escritorio.add(actualizarC);

    }

    });

    //se le asigna una clase annima al Item "actualizar pelicula" del men Insertar.Se

    llama a la clase actualizarPelicula

    JMI_actualizarPelicula.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    actualizarP = new actualizarPelicula();

    JDP_escritorio.add(actualizarP);

    }

    });

    //se le asigna una clase annima al Item "cierre Semanal" del men Moviemientos.Se

    llama a la clase cierreSemanal

    JMI_cierreSemanal.addActionListener(new ActionListener() {

  • PGINA 22

    public void actionPerformed(ActionEvent e) {

    cierreS = new cierreSemanal();

    JDP_escritorio.add(cierreS);

    }

    });

    //se le asigna una clase annima al Item "cierre Mensual" del men Moviemientos.Se

    llama a la clase cierreMensual

    JMI_cierreMensual.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    cierreM = new cierreMensual();

    JDP_escritorio.add(cierreM);

    }

    });

    //se le asigna una clase annima al Item "Listado de clientes" del men reportes.Se llama

    a la clase listadoClientes

    JMI_listadoClientes.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    listadoC = new listadoClientes();

    JDP_escritorio.add(listadoC);

    }

    });

    //se le asigna una clase annima al Item "Listado de pelicula" del men reportes.Se

    llama a la clase listadoPeliculas

    JMI_listadoPeliculas.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    listadoP = new listadoPeliculas();

    JDP_escritorio.add(listadoP);

    }

    });

    //se le asigna una clase annima al Item "Peliculas por cliente" del men reportes.Se

    llama a la clase listadoPeliculasCliente

    JMI_listadoPeliculasCliente.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    listadoPC = new listadoPeliculasCliente();

    JDP_escritorio.add(listadoPC);

    }

    });

    //se le asigna una clase annima al Item "Dia alquiler mas bajo y mas alto" del men

    Moviemientos.Se llama a la clase diaAlquilerAltoBajo

    JMI_diaAlquiler_alto_bajo.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

  • PGINA 23

    alquilerDAB = new diaAlquilerAltoBajo();

    JDP_escritorio.add(alquilerDAB);

    }

    });

    this.setJMenuBar(JMB_menu);

    c.add(JDP_escritorio);

    }//fin ***CONSTRUCTOR***

    public void actionPerformed(ActionEvent e){

    }

    public static void main(String[] args) {

    p =new principal();

    p.setSize(900, 700);

    p.setVisible(true);

    p.setLocation(0,0);

    p.setExtendedState(JFrame.MAXIMIZED_BOTH);//Para que el marco se maximise....

    p.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    sp= new Selecionpelicula(p);

    sp.setLocation(100, 10);

    sp.setSize(500,400);

    // sp.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

    }

    public boolean siJIF_EstaAbierto(String tituloFrameInterno){

    boolean estaAbierto=false;

    //getAllFrames(), retorna los JInternalFrame que estan abiertos en el JDesktopPane

    JInternalFrame[] arreglo= JDP_escritorio.getAllFrames();

    for(int i=0; i

  • PGINA 24

    if(pegar==true)

    pegar = false;

    else

    pegar = true;

    }//Fin del set del Jdialog

    public static void setJdialog1(Boolean pegar){

    infoCierreMens = new informeCierreMensual(p);

    infoCierreMens.setVisible(pegar);

    if(pegar==true)

    pegar = false;

    else

    pegar = true;

    }//fin setJDialog1

    }

    Clase insertarCliente import java.awt.FlowLayout;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStreamReader;

    import java.io.PrintStream;

    import java.util.StringTokenizer;

    import javax.swing.BoxLayout;

    import javax.swing.ImageIcon;

    import javax.swing.JButton;

    import javax.swing.JFormattedTextField;

    import javax.swing.JInternalFrame;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.JScrollPane;

  • PGINA 25

    import javax.swing.JTextArea;

    import javax.swing.JTextField;

    import javax.swing.text.MaskFormatter;

    public final class insertarClientes extends JInternalFrame implements ActionListener{

    //global

    ImageIcon II_imagen1, II_imagen2;

    JPanel JP_principal;

    JLabel JL_id, JL_nombreCliente, JL_telefonoCliente, JL_direccionCliente, JL_emailCliente,

    JL_autorizadoCliente;

    JTextField JTF_id, JTF_nombreCliente, JTF_telefonoCliente, JTF_emailCliente,

    JTF_autorizadoCliente;

    JTextArea JTA_direccionCliente;

    JButton JB_insertarCliente;

    JPanel JP_id, JP_nombre, JP_telefono, JP_direccion, JP_email, JP_autorizado, JP_boton;

    JScrollPane JSP_direccionCliente;

    private String

    id, //recibe el id del cliente, generado por la clase generarIDcliente

    nombre, //guarda el texto del campo JTF_nombreCliente, este a su vez contendr el nombre

    del cliente

    telefono, //guarda el texto del campo JTF_telefonoCliente, este a su vez contendr el telefono

    del cliente

    direccion, //guarda el texto del campo JTA_direccionCliente, este a su vez contendr la

    direccion del cliente

    email, //guarda el texto del campo JTF_emailCliente, este a su vez contendr el coero

    electrnico del cliente

    autorizado;//guarda el texto del campo JTF_autorizadoCliente, este a su vez contendr el

    nombre del autorizado del cliente

    String nombreDeArchivo= "Clientes.txt";

    //***CONSTRUCTOR***

    public insertarClientes(String id, String nombre, String telefono, String direccion, String email,

    String autorizado){

    super ("Insertar Cliente", true, true, true,true);

    setVisible(true);

    setLocation(140,10); //ubicacin

    setSize(300,350);//El tamao de la ventana

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    this.setId(id);

    this.setNombre(nombre);

    this.setTelefono(telefono);

    this.setDireccion(direccion);

    this.setEmail(email);

    this.setAutorizado(autorizado);

    JP_principal= new JPanel(); //instancia del panel principal

  • PGINA 26

    // JP_principal.setLayout(new FlowLayout());

    JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));

    //instancia de los componentes del panel principal

    //(Image Icons)

    II_imagen1 = new ImageIcon("imagen1.gif");

    II_imagen2 = new ImageIcon("imagen2.gif");

    //(etiquetas)

    JL_id = new JLabel("Identificacin:");

    JL_nombreCliente = new JLabel("Nombre:");

    JL_telefonoCliente = new JLabel("Telfono:");

    JL_direccionCliente = new JLabel("Direccin:");

    JL_emailCliente = new JLabel("e-mail:");

    JL_autorizadoCliente = new JLabel("Autorizado:");

    //(campos de texto)

    JTF_id = new JTextField(2);

    JTF_nombreCliente = new JTextField(13);

    JTF_telefonoCliente = new JTextField(13);

    try{

    MaskFormatter formatter = new MaskFormatter("########");

    formatter.setPlaceholderCharacter('_');

    JL_telefonoCliente=new JLabel("Telfono del cliente");

    JTF_telefonoCliente = new JFormattedTextField(formatter);

    }

    catch(Exception er){

    System.out.println(er);

    }//fin catch

    JTF_emailCliente = new JTextField(13);

    JTF_autorizadoCliente = new JTextField(13);

    //(areas de texto)

    JTA_direccionCliente = new JTextArea(4, 14);

    JTA_direccionCliente.setWrapStyleWord(true);

    JScrollPane JSP_direccionCliente= new

    JScrollPane(JTA_direccionCliente,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPa

    ne.HORIZONTAL_SCROLLBAR_AS_NEEDED);

    //(botones)

    JB_insertarCliente = new JButton("Agregar Cliente!", II_imagen1);

    //(paneles)

    JP_id = new JPanel();

    JP_nombre = new JPanel();

    JP_telefono = new JPanel();

    JP_direccion = new JPanel();

    JP_email = new JPanel();

    JP_autorizado = new JPanel();

    JP_boton = new JPanel();

    //Estableser Layout a los paneles

    JP_id.setLayout(new FlowLayout());

    JP_nombre.setLayout(new FlowLayout());

    JP_telefono.setLayout(new FlowLayout());

    JP_direccion.setLayout(new FlowLayout());

  • PGINA 27

    JP_email.setLayout(new FlowLayout());

    JP_autorizado.setLayout(new FlowLayout());

    //atributos a cada objeto

    JTF_id.setEditable(false);

    JB_insertarCliente.addActionListener((ActionListener) this);

    //pegar elementos a cada panel

    JP_id.add(JL_id);

    JP_id.add(JTF_id);

    JP_nombre.add(JL_nombreCliente);

    JP_nombre.add(JTF_nombreCliente);

    JP_telefono.add(JL_telefonoCliente);

    JP_telefono.add(JTF_telefonoCliente);

    JP_direccion.add(JL_direccionCliente);

    JP_direccion.add(JSP_direccionCliente);

    JP_email.add(JL_emailCliente);

    JP_email.add(JTF_emailCliente);

    JP_autorizado.add(JL_autorizadoCliente);

    JP_autorizado.add(JTF_autorizadoCliente);

    JP_boton.add(JB_insertarCliente);

    //pegar los elementos al panel principal

    JP_principal.add(JP_id);

    JP_principal.add(JP_nombre);

    JP_principal.add(JP_telefono);

    JP_principal.add(JP_direccion);

    JP_principal.add(JP_email);

    JP_principal.add(JP_autorizado);

    JP_principal.add(JP_boton);

    JTF_id.setText(""+(UltimoID())); //se coloca el nmero de cliente por insertar. La llamada al

    //mtodo cantidadDeClientes determina el nmero total de clientes existentes en ese

    momento, se le suma 1 para que aparezca el nmero de cliente a insertar.

    this.add(JP_principal);

    }//****FIN CONSTRUCTOR******

    public void actionPerformed(ActionEvent e){

    boolean llenadoCorrecto = false;

    if(e.getSource()== JB_insertarCliente){

    //Se obtienen los datos de los campos de texto para que sean procesados..

    setId(JTF_id.getText());

    setNombre(JTF_nombreCliente.getText());

    setTelefono(JTF_telefonoCliente.getText());

    setDireccion(JTA_direccionCliente.getText());

  • PGINA 28

    setEmail(JTF_emailCliente.getText());

    setAutorizado(JTF_autorizadoCliente.getText());

    //en caso que el, tamao del String recibido sea cero, se dleplegar un mensaje indicando el

    error

    if(

    getAutorizado().length()==0||getTelefono().length()==0||getNombre().length()==0||getDireccion().le

    ngth()==0||getEmail().length()==0){//si no se han llenado todos los datos

    JOptionPane.showMessageDialog(null, "Debe llenar todos los espacios!", "ERROR!",

    JOptionPane.WARNING_MESSAGE, II_imagen1);

    }//fin if de campos en blanco

    else if(!JTF_nombreCliente.getText().matches("[a-zA-Z]+\\s+[a-zA-z]+"))

    JOptionPane.showMessageDialog(null, "Debe digitar nombre y apellido");

    else if(!JTF_telefonoCliente.getText().matches("\\d{8}"))

    JOptionPane.showMessageDialog(this, "Formato de telfono incorrecto");

    else if(!JTF_autorizadoCliente.getText().matches("[a-zA-Z]+\\s+[a-zA-z]+"))

    JOptionPane.showMessageDialog(null, "Debe digitar nombre y apellido\ndel autorizado");

    else{

    llenadoCorrecto=true;

    JOptionPane.showMessageDialog(null, "Cliente guardado con xito");

    JTF_nombreCliente.setText("");

    JTF_telefonoCliente.setText("");

    JTF_emailCliente.setText("");

    JTF_autorizadoCliente.setText("");

    JTA_direccionCliente.setText("");

    }

    if(llenadoCorrecto==true){

    escribeArchivo();

    escribeID();

    JTF_id.setText(""+UltimoID());

    id=JTF_id.getText();

    }//fin del if

    }//fin if JB_insertarClientes

    }//fin actionPerformed

    public void escribeArchivo(){

  • PGINA 29

    try{

    File f1;

    f1 = new File("Clientes.txt");

    FileOutputStream fos;

    fos=new FileOutputStream(f1,true);

    PrintStream ps;

    ps = new PrintStream(fos);

    String nombreEstudiante;

    nombreEstudiante=getId() +";"+ getNombre() +";"+ getDireccion() +";"+ getEmail() +";"+

    getTelefono()+";"+ getAutorizado();

    ps.println(nombreEstudiante);

    }//Fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null,fnfe);

    }//fin catch

    }//Fin escribeArchivo()

    public BufferedReader getBufferedReader(){

    BufferedReader entradaDeArchivo= null;

    File f = new File(nombreDeArchivo);

    try{

    FileInputStream fis = new FileInputStream(f);

    InputStreamReader isr = new InputStreamReader(fis);

    entradaDeArchivo = new BufferedReader(isr);

    }//fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null, fnfe);

    }

    return entradaDeArchivo;

    }//fin getBufferedReader

    //lee la cantidad de lneas que hay en el archivo

    //mtodo cantidadDeClientes determina el nmero total de clientes existentes en ese momento

    public int cantidadDeClientes(){

    File f1;

    f1 = new File("Clientes.txt");

    FileOutputStream fos;

  • PGINA 30

    try {fos=new FileOutputStream(f1,true);}

    catch(Exception es){

    System.out.println("Este error ocurrior en insertar clientes en el metodo cantidad de

    clientes\n"+es);

    }//fin del catch

    BufferedReader entradaDeArchivo = getBufferedReader();

    int cuentaClientes = 0;

    try{

    String registroActual = entradaDeArchivo.readLine();

    while(registroActual!=null){

    cuentaClientes++;

    registroActual = entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch( IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }//fin catch

    return cuentaClientes;

    }//fincantidadDeEstudantes

    public insertarClientes[] getTodosLosClientes(){

    BufferedReader entradaDeArchivo= getBufferedReader();

    insertarClientes arregloClientes[] = new insertarClientes[cantidadDeClientes()];

    int indiceArregloClientes= -1;

    try{

    String registroActual = entradaDeArchivo.readLine();

    while(registroActual!=null){

    indiceArregloClientes++;

    StringTokenizer st = new StringTokenizer(registroActual, ";");

    String id="", nombre="", telefono="", direccion="", email="", autorizado="";

    int ID=1, NOMBRE=2, TELEFONO=3, DIRECCION=4, EMAIL=5, AUTORIZADO=6;

    int contador=1;

    while(st.hasMoreTokens()){

    if(contador==ID)

    id=st.nextToken();

  • PGINA 31

    else if(contador==NOMBRE)

    nombre=st.nextToken();

    else if(contador==TELEFONO)

    telefono=(st.nextToken());

    else if(contador==DIRECCION)

    direccion=st.nextToken();

    else if(contador==EMAIL)

    email=st.nextToken();

    else if(contador==AUTORIZADO)

    autorizado=st.nextToken();

    contador++;

    }//fin while

    insertarClientes client = new insertarClientes(id, nombre, telefono, direccion, email,

    autorizado);

    arregloClientes[indiceArregloClientes]=client;

    registroActual = entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch(IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }

    return arregloClientes;

    }//fin getTodosLosClientes

    /**

    * @return the nombre

    */

    public String getNombre() {

    return nombre;

    }

    /**

    * @param nombre the nombre to set

    */

    public void setNombre(String nombre) {

    this.nombre = nombre;

    }

    /**

    * @return the telefono

    */

    public String getTelefono() {

    return telefono;

    }

    /**

    * @param telefono the telefono to set

    */

    public void setTelefono(String telefono) {

  • PGINA 32

    this.telefono = telefono;

    }

    /**

    * @return the direccion

    */

    public String getDireccion() {

    return direccion;

    }

    /**

    * @param direccion the direccion to set

    */

    public void setDireccion(String direccion) {

    this.direccion = direccion;

    }

    /**

    * @return the email

    */

    public String getEmail() {

    return email;

    }

    /**

    * @param email the email to set

    */

    public void setEmail(String email) {

    this.email = email;

    }

    /**

    * @return the autorizado

    */

    public String getAutorizado() {

    return autorizado;

    }

    /**

    * @param autorizado the autorizado to set

    */

    public void setAutorizado(String autorizado) {

    this.autorizado = autorizado;

    }

    /**

    * @return the id

    */

    public String getId() {

    return id;

    }

  • PGINA 33

    /**

    * @param id the id to set

    */

    public void setId(String id) {

    this.id = id;

    }

    public int UltimoID(){

    File f1;

    f1 = new File("ID_cliente.txt");

    FileOutputStream fos;

    try {fos=new FileOutputStream(f1,true);}

    catch(Exception es){

    System.out.println("Este error ocurrior en insertar clientes en el metodo cantidad de

    clientes\n"+es);

    }//fin del catch

    BufferedReader entradaDeArchivo = getBufferedReaderII();

    int cuentaClientes = 0;

    try{

    String registroActual = entradaDeArchivo.readLine();

    while(registroActual!=null){

    cuentaClientes++;

    registroActual = entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch( IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }//fin catch

    return cuentaClientes+1;

    }//find

    public BufferedReader getBufferedReaderII(){

    BufferedReader entradaDeArchivo= null;

    File f = new File("ID_cliente.txt");

    try{

    FileInputStream fis = new FileInputStream(f);

    InputStreamReader isr = new InputStreamReader(fis);

    entradaDeArchivo = new BufferedReader(isr);

    }//fin try

    catch(FileNotFoundException fnfe){

  • PGINA 34

    JOptionPane.showMessageDialog(null, fnfe);

    }

    return entradaDeArchivo;

    }//fin getBufferedReader

    public void escribeID(){

    try{

    File f1;

    f1 = new File("ID_cliente.txt");

    FileOutputStream fos;

    fos=new FileOutputStream(f1,true);

    PrintStream ps;

    ps = new PrintStream(fos);

    String ID;

    ID=JTF_id.getText();

    ps.println(ID);

    }//Fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null,fnfe);

    }//fin catch

    }//Fin del metodo escribe ID

    }//fin clase insertarClientes

    Clase insertaPelicula

    import java.awt.FlowLayout;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.awt.event.ItemEvent;

    import java.awt.event.ItemListener;

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

  • PGINA 35

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStreamReader;

    import java.io.PrintStream;

    import java.util.StringTokenizer;

    import javax.swing.BoxLayout;

    import javax.swing.ButtonGroup;

    import javax.swing.JButton;

    import javax.swing.JInternalFrame;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.JRadioButton;

    import javax.swing.JScrollPane;

    import javax.swing.JTextArea;

    import javax.swing.JTextField;

    public class insertarPelicula extends JInternalFrame implements ActionListener{

    //global

    JLabel JL_numeroPelicula, JL_nombrePelicula, JL_repartoPelicula, JL_aoPelicula,

    JL_categoraPelicula, JL_clasificacinPelicula;

    JTextField JTF_numeroPelicula, JTF_nombrePelicula, JTF_ano;

    JTextArea JTA_reparto;

    JPanel JP_principal, JP_clasificacion, JP_clasificacion1, JP_numero,

    JP_nombre, JP_reparto, JP_ano, JP_categoria, JP_categoria1, JP_boton;

    JScrollPane JSP_reparto;

    JButton JB_insertar;

    JRadioButton /*para la clacificacin*/JRB_drama, JRB_comedia, JRB_accion, JRB_infantil,

    JRB_suspenso, JRB_terror, JRB_cienciaFiccion

  • PGINA 36

    /*para la categora*/, JRB_estreno, JRB_noEstreno;

    ButtonGroup BG_Clasificacion, BG_categoria;

    private String

    id, //alberga un nmero consecutivo generado en la clase generarIDPelicula

    nombre, //Contiene el nombre de la pelcula, obtenido por medio del JTF_nombrePelicula

    reparto, //guarda el dato de los actores en cada pelacula, obtenido del JTA_reparto

    ao, //guarda al ao de la pelicula, se obtiene mediante el JTF_ao

    clasificacion/*="false"*/, //Contiene la clasificacion de la pelcula, obtenida por medio de los

    JRadioButtons del ButtonGroup BG_clasificacion + Se inicializa en un string "X" para compararlo

    en caso de no ser modificado algn JRadioButton del grupo BG_clasificacion

    categoria/*="false"*/; //Contiene la categora de la pelcula, obtenida por medio de los

    JRadioButtons del ButtonGroup BG_categora. Se inicializa en un string "X" para compararlo en

    caso de no ser modificado algn JRadioButton del grupo BG_categora

    String nombreDeArchivo="Peliculas.txt";

    //****CONSTRUCTOR****

    public insertarPelicula(String id, String nombre, String clasificacion, String reparto, String ao,

    String categoria) {

    super("Insertar pelcula", true, true, false, true);

    setVisible(true);

    setLocation(140,10); //ubicacin

    setSize(400,470);//El tamao de la ventana

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    this.setId(id);

    this.setNombre(nombre);

    this.setClasificacion(clasificacion);

    this.setReparto(reparto);

    this.setAo(ao);

  • PGINA 37

    this.setCategoria(categoria);

    //instancia de los objetos

    //(etiquetas)

    JL_numeroPelicula = new JLabel("# pelicula");

    JL_nombrePelicula = new JLabel("Nombre");

    JL_clasificacinPelicula = new JLabel("Clasificacin");

    JL_repartoPelicula = new JLabel("Reparto");

    JL_aoPelicula = new JLabel("Ao");

    JL_categoraPelicula = new JLabel("Categora");

    //(campos de texto)

    JTF_nombrePelicula= new JTextField(10);

    JTF_ano = new JTextField(4);

    JTF_numeroPelicula = new JTextField(2);

    //(Areas de texto)

    JTA_reparto = new JTextArea(2, 20);

    JTA_reparto.setWrapStyleWord(true);

    JScrollPane JSP_reparto= new

    JScrollPane(JTA_reparto,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORI

    ZONTAL_SCROLLBAR_AS_NEEDED);

    //(Botones)

    JB_insertar = new JButton("Insertar!");

    //(JRadioButton)

    JRB_accion = new JRadioButton("Accion");

    JRB_cienciaFiccion = new JRadioButton("Ciencia Ficcin");

    JRB_comedia = new JRadioButton("Comedia");

    JRB_drama = new JRadioButton("Drama");

    JRB_infantil = new JRadioButton("Infantil");

  • PGINA 38

    JRB_suspenso = new JRadioButton("Suspenso");

    JRB_terror = new JRadioButton("Terror");

    JRB_noEstreno = new JRadioButton("No estreno");

    JRB_estreno = new JRadioButton("Estreno");

    //ButtonGroup

    BG_Clasificacion = new ButtonGroup();

    BG_categoria = new ButtonGroup();

    //(paneles)

    JP_principal = new JPanel();

    JP_clasificacion1 = new JPanel();

    JP_clasificacion = new JPanel();

    JP_numero = new JPanel();

    JP_nombre = new JPanel();

    JP_reparto = new JPanel();

    JP_ano = new JPanel();

    JP_categoria = new JPanel();

    JP_categoria1 = new JPanel();

    JP_boton = new JPanel();

    //Asignar Layout a los paneles

    JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));

    JP_clasificacion.setLayout(new FlowLayout());

    JP_boton.setLayout(new FlowLayout());

    JTF_numeroPelicula.setEditable(false);

    //pegar radioButtons al grupo de Botones

    BG_Clasificacion.add(JRB_accion);

  • PGINA 39

    BG_Clasificacion.add(JRB_cienciaFiccion);

    BG_Clasificacion.add(JRB_comedia);

    BG_Clasificacion.add(JRB_drama);

    BG_Clasificacion.add(JRB_infantil);

    BG_Clasificacion.add(JRB_suspenso);

    BG_Clasificacion.add(JRB_terror);

    BG_categoria.add(JRB_noEstreno);

    BG_categoria.add(JRB_estreno);

    //pegar componentes a los paneles correspondientes

    JP_nombre.add(JL_nombrePelicula);

    JP_nombre.add(JTF_nombrePelicula);

    JP_numero.add(JL_numeroPelicula);

    JP_numero.add(JTF_numeroPelicula);

    JP_clasificacion1.add(JL_clasificacinPelicula);

    JP_clasificacion.add(JRB_accion);

    JP_clasificacion.add(JRB_cienciaFiccion);

    JP_clasificacion.add(JRB_comedia);

    JP_clasificacion.add(JRB_drama);

    JP_clasificacion.add(JRB_infantil);

    JP_clasificacion.add(JRB_suspenso);

    JP_clasificacion.add(JRB_terror);

    JP_reparto.add(JL_repartoPelicula);

    JP_reparto.add(JSP_reparto);

    JP_ano.add(JL_aoPelicula);

    JP_ano.add(JTF_ano);

    JP_categoria1.add(JL_categoraPelicula);

    JP_categoria.add(JRB_estreno);

    JP_categoria.add(JRB_noEstreno);

    JP_boton.add(JB_insertar);

  • PGINA 40

    //pegar los paneles al panel principal

    JP_principal.add(JP_numero);

    JP_principal.add(JP_nombre);

    JP_principal.add(JP_clasificacion1);

    JP_principal.add(JP_clasificacion);

    JP_principal.add(JP_reparto);

    JP_principal.add(JP_ano);

    JP_principal.add(JP_categoria1);

    JP_principal.add(JP_categoria);

    JP_principal.add(JB_insertar);

    //atributos a los objetos

    JB_insertar.addActionListener((ActionListener) this); //se le asigna ActionListenes al boton para

    que escuche la el eveto y la accion

    //Con las siguientes clases annimas se cambia el estado de la String clasificacion.Se determina

    mediante los JRadioButons del grupo BG_clasificacion

    //Cuando se presiona un boton, el estado de la String "clasificacion" cambia

    // Clase interna del JRB_accion, clasificacion pasa a ser "accion"

    JRB_accion.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setClasificacion("accion");

    System.out.println(getClasificacion());

    }

    });

    // Clase interna del JRB_cienciaFiccion, clasificacion pasa a ser "ciencia ficcion"

    JRB_cienciaFiccion.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

  • PGINA 41

    setClasificacion("ciencia ficcin");

    System.out.println(getClasificacion());

    }

    });

    // Clase interna del JRB_comedia, clasificacion pasa a ser "comedia"

    JRB_comedia.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setClasificacion("comedia");

    System.out.println(getClasificacion());

    }

    });

    // Clase interna del JRB_drama, clasificacion pasa a ser "drama"

    JRB_drama.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setClasificacion("drama");

    System.out.println(getClasificacion());

    }

    });

    // Clase interna del JRB_infantil, clasificacion pasa a ser "infantil"

    JRB_infantil.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setClasificacion("infantil");

    System.out.println(getClasificacion());

    }

    });

    // Clase interna del JRB_suspenso, clasificacion pasa a ser "suspenso"

    JRB_suspenso.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

  • PGINA 42

    setClasificacion("suspenso");

    System.out.println(getClasificacion());

    }

    });

    // Clase interna del JRB_terror, clasificacion pasa a ser "terror"

    JRB_terror.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setClasificacion("terror");

    System.out.println(getClasificacion());

    }

    });

    //Con las siguientes clases annimas se cambia el estado de la String categoria.Se determina

    mediante los JRadioButons del grupo BG_categoria

    // Clase interna del JRB_estreno, categora pasa a ser "estreno"

    JRB_estreno.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setCategoria("estreno");

    System.out.println(getCategoria());

    }

    });

    // Clase interna del JRB_noEstreno, categora pasa a ser "NO_Estreno"

    JRB_noEstreno.addItemListener(new ItemListener() {

    public void itemStateChanged(ItemEvent e) {

    setCategoria("NO estreno");

    System.out.println(getCategoria());

    }

    });

  • PGINA 43

    JTF_numeroPelicula.setText(""+UltimoID()); //se coloca el nmero de cliente por insertar. La

    llamada al

    //mtodo cantidadDeClientes determina el nmero total de clientes existentes en ese

    momento, se le suma 1 para que aparezca el nmero de cliente a insertar.

    this.add(JP_principal);

    }//****FIN CONSTRUCTOR****

    public void actionPerformed(ActionEvent e){

    boolean llenadoCorrecto = false;

    try{

    if(e.getSource()== JB_insertar){

    //Se obtienen los datos de los campos de texto para que sean procesados..

    setId(JTF_numeroPelicula.getText());

    setNombre(JTF_nombrePelicula.getText());

    setAo(JTF_ano.getText());

    setReparto(JTA_reparto.getText());

    //en caso que el, tamao del String recibido sea cero, se dleplegar un mensaje indicando el

    error

    if(getNombre().length()==0||getAo().length()==0||getReparto().length()==0||(getCategoria().equals

    ("false")==true)||(getClasificacion().equals("false")==true)){//si no se han llenado todos los datos

    JOptionPane.showMessageDialog(null, "Debe llenar todos los espacios!", "ERROR!",

    JOptionPane.WARNING_MESSAGE);

    }

    else if(!JTF_ano.getText().matches("\\d{4}"))

    JOptionPane.showMessageDialog(null, "Formato de ao incorrecto", "ERROR!",

    JOptionPane.WARNING_MESSAGE);

  • PGINA 44

    else{

    escribeArchivo();

    escribeID();

    JTF_ano.setText("");

    JTF_nombrePelicula.setText("");

    JTA_reparto.setText("");

    JTF_numeroPelicula.setText(""+UltimoID());

    JOptionPane.showMessageDialog(null, "Pelicula guardada con xito");

    }//fin else

    }//fin if JB_insertarClientes

    }//fin try

    catch(NullPointerException npe){ //se atrapa la excepcion y se despliega un mensaje...

    JOptionPane.showMessageDialog(null, "Debe llenar todos los espacios!", "ERROR!",

    JOptionPane.WARNING_MESSAGE);

    }//fin catch

    }//fin actionPerformed

    public void escribeArchivo(){

    try{

    File f1;

    f1 = new File("Peliculas.txt");

    FileOutputStream fos;

    fos=new FileOutputStream(f1,true);

    PrintStream ps;

  • PGINA 45

    ps = new PrintStream(fos);

    String idPelicula;

    idPelicula=getId() +";"+ getNombre() +";"+ getClasificacion()+";"+ getReparto() +";"+ getAo()

    +";"+ getCategoria();

    ps.println(idPelicula);

    }//Fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null,fnfe);

    }//fin catch

    }//Fin escribeArchivo()

    public BufferedReader getBufferedReader(){

    BufferedReader entradaDeArchivo= null;

    File f = new File(nombreDeArchivo);

    try{

    FileInputStream fis = new FileInputStream(f);

    InputStreamReader isr = new InputStreamReader(fis);

    entradaDeArchivo = new BufferedReader(isr);

    }//fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null, fnfe);

    }

    return entradaDeArchivo;

    }//fin getBufferedReader

  • PGINA 46

    //lee la cantidad de lneas que hay en el archivo

    //mtodo cantidadDeClientes determina el nmero total de clientes existentes en ese momento

    public int cantidadDePeliculas(){

    File f1;

    f1 = new File("Peliculas.txt");

    FileOutputStream fos;

    try {fos=new FileOutputStream(f1,true);}

    catch(Exception es){

    System.out.println("Este error ocurrior en insertar clientes en el metodo cantidad de

    Peliculas\n"+es);

    }//fin del catch

    BufferedReader entradaDeArchivo = getBufferedReader();

    int cuentaPeliculas = 0;

    try{

    String registroActual = entradaDeArchivo.readLine();

    while(registroActual!=null){

    cuentaPeliculas++;

    registroActual = entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch( IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }//fin catch

    return cuentaPeliculas;

    }//cantidadDePeliculas

  • PGINA 47

    public insertarPelicula[] getTodosLosPeliculas(){

    BufferedReader entradaDeArchivo= getBufferedReader();

    insertarPelicula arregloPeliculas[] = new insertarPelicula[cantidadDePeliculas()];

    int indiceArregloPeliculas= -1;

    try{

    String registroActual = entradaDeArchivo.readLine();

    while(registroActual!=null){

    indiceArregloPeliculas++;

    StringTokenizer st = new StringTokenizer(registroActual, ";");

    String id="", nombre="", clasificacion="", reparto="", ao="", categoria="";

    int ID=1, NOMBRE=2, CLASIFICACION=3, REPARTO=4, AO=5, CATEGORIA=6;

    int contador=1;

    while(st.hasMoreTokens()){

    if(contador==ID)

    id=st.nextToken();

    else if(contador==NOMBRE)

    nombre=st.nextToken();

    else if(contador==CLASIFICACION)

    clasificacion=(st.nextToken());

    else if(contador==REPARTO)

  • PGINA 48

    reparto=st.nextToken();

    else if(contador==AO)

    ao=st.nextToken();

    else if(contador==CATEGORIA)

    categoria=st.nextToken();

    contador++;

    }//fin while

    insertarPelicula pelic = new insertarPelicula(id, nombre, clasificacion, reparto, ao,

    categoria);

    arregloPeliculas[indiceArregloPeliculas] = pelic;

    registroActual = entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch(IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }

    return arregloPeliculas;

    }//fin getTodosLosPeliculas

    /**

    * @return the id

    */

    public String getId() {

    return id;

  • PGINA 49

    }

    /**

    * @param id the id to set

    */

    public void setId(String id) {

    this.id = id;

    }

    /**

    * @return the nombre

    */

    public String getNombre() {

    return nombre;

    }

    /**

    * @param nombre the nombre to set

    */

    public void setNombre(String nombre) {

    this.nombre = nombre;

    }

    /**

    * @return the reparto

    */

    public String getReparto() {

    return reparto;

    }

    /**

    * @param reparto the reparto to set

  • PGINA 50

    */

    public void setReparto(String reparto) {

    this.reparto = reparto;

    }

    /**

    * @return the ao

    */

    public String getAo() {

    return ao;

    }

    /**

    * @param ao the ao to set

    */

    public void setAo(String ao) {

    this.ao = ao;

    }

    /**

    * @return the clasificacion

    */

    public String getClasificacion() {

    return clasificacion;

    }

    /**

    * @param clasificacion the clasificacion to set

    */

    public void setClasificacion(String clasificacion) {

    this.clasificacion = clasificacion;

    }

  • PGINA 51

    /**

    * @return the categoria

    */

    public String getCategoria() {

    return categoria;

    }

    /**

    * @param categoria the categoria to set

    */

    public void setCategoria(String categoria) {

    this.categoria = categoria;

    }

    public int UltimoID(){

    File f1;

    f1 = new File("ID_pelicula.txt");

    FileOutputStream fos;

    try {fos=new FileOutputStream(f1,true);}

    catch(Exception es){

    System.out.println("Este error ocurrior en insertar clientes en el metodo cantidad de

    clientes\n"+es);

    }//fin del catch

    BufferedReader entradaDeArchivo = getBufferedReaderII();

  • PGINA 52

    int cuentaClientes = 0;

    try{

    String registroActual = entradaDeArchivo.readLine();

    while(registroActual!=null){

    cuentaClientes++;

    registroActual = entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch( IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }//fin catch

    return cuentaClientes+1;

    }//find

    public BufferedReader getBufferedReaderII(){

    BufferedReader entradaDeArchivo= null;

    File f = new File("ID_pelicula.txt");

    try{

    FileInputStream fis = new FileInputStream(f);

    InputStreamReader isr = new InputStreamReader(fis);

    entradaDeArchivo = new BufferedReader(isr);

    }//fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null, fnfe);

    }

    return entradaDeArchivo;

  • PGINA 53

    }//fin getBufferedReader

    public void escribeID(){

    try{

    File f1;

    f1 = new File("ID_pelicula.txt");

    FileOutputStream fos;

    fos=new FileOutputStream(f1,true);

    PrintStream ps;

    ps = new PrintStream(fos);

    String ID;

    ID=JTF_numeroPelicula.getText();

    ps.println(ID);

    }//Fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null,fnfe);

    }//fin catch

    }//Fin del metodo escribe ID

    }//fin de la clase...

    Clase borrarCliente.

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.io.BufferedReader;

    import java.io.BufferedWriter;

    import java.io.File;

  • PGINA 54

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.IOException;

    import java.util.StringTokenizer;

    import javax.swing.BoxLayout;

    import javax.swing.JButton;

    import javax.swing.JInternalFrame;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.JTextField;

    public class borrarClientes extends JInternalFrame implements ActionListener{

    //global

    JLabel JL_identificador;

    JTextField JTF_identificador;

    JButton JB_mostrarDatos; //llama a un JOPtionPane que condtiene los datos del cliente por

    borrar

    JPanel JP_principal, JP_identificador, JP_boton;

    String identificador;

    String nombreDeArchivo="Clientes.txt";

    String datos="";

    File registroClientes=new File("Clientes.txt");

    insertarClientes insertC;

    String datosDelClientePorBorrar;

    //***CONSTRUCTOR***

  • PGINA 55

    public borrarClientes() {

    super("Borrar cliente", false, true, false, true);

    setVisible(true);

    setLocation(100,10); //ubicacin

    setSize(400,150);//El tamao de la ventana

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    //instancia de objetos

    //(etiquetas)

    JL_identificador = new JLabel("ID del cliente a borrar");

    //(Campos de texto)

    JTF_identificador = new JTextField(2);

    //(Botones)

    JB_mostrarDatos = new JButton("Mostrar datos!");

    //(paneles)

    JP_principal = new JPanel();

    JP_identificador = new JPanel();

    JP_boton = new JPanel();

    //pegat objetos en su determinado panel

    JP_identificador.add(JL_identificador);

    JP_identificador.add(JTF_identificador);

    JP_boton.add(JB_mostrarDatos);

    //pegar paneles al panel principal

    JP_principal.add(JP_identificador);

    JP_principal.add(JP_boton);

    JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));

    //estableser Atributos a los objetos

  • PGINA 56

    JB_mostrarDatos.addActionListener((ActionListener) this);

    this.add(JP_principal);

    }//****FIN CONSTRUCTOR****

    public void actionPerformed(ActionEvent e){

    boolean datoCorrecto=false; //varible que determina si el cliente est o no en el archivo.

    Depende de su estado si se borra o no

    identificador= JTF_identificador.getText();

    if(identificador.length()==0)

    JOptionPane.showMessageDialog(null, "Debe digitar un identificador", "ERROR!",

    JOptionPane.ERROR_MESSAGE);

    else{

    if(buscarCliente(identificador)==true)

    datoCorrecto=true;

    else{

    JOptionPane.showMessageDialog(null, "Cliente NO encontrado!", "ERROR!",

    JOptionPane.WARNING_MESSAGE);

    JTF_identificador.setText("");

    }//fin else

    if(datoCorrecto==true){

    JOptionPane.showMessageDialog(null, datosDelClientePorBorrar,"DATOS DEL CLIENTE

    "+identificador, JOptionPane.INFORMATION_MESSAGE);

    int borrar= JOptionPane.showConfirmDialog(null, "Desea borrar el cliente?", "BORRAR

    CLIENTE!", JOptionPane.YES_NO_CANCEL_OPTION);

    if(borrar==0){

    eliminarCliente(identificador);

    JOptionPane.showMessageDialog(null, "Cliente Borrado!");

    dispose();

    }///fin if

  • PGINA 57

    else if(borrar==1){

    JOptionPane.showMessageDialog(null, "NO ha borrado el cliente " +

    JTF_identificador.getText());

    JTF_identificador.setText("");

    }//fin else

    else if(borrar==2){

    JOptionPane.showMessageDialog(null, "Ha cancelado el borrado", "CANCELADO",

    JOptionPane.INFORMATION_MESSAGE);

    dispose();

    }

    }//fin if dato correcto=true

    }//fin else

    }//fin actionPerformed

    public boolean buscarCliente(String identificador){

    insertC=new insertarClientes(null, null, null, null, null, null);

    boolean encontrado= false;

    BufferedReader entradaDeArchivo = insertC.getBufferedReader();

    try{

    String registroActual = entradaDeArchivo.readLine(); //se obtiene toda la linea de ese

    registro

    while(registroActual!= null && encontrado==false/*o tambien !encontrado*/){

    StringTokenizer st = new StringTokenizer(registroActual, ";");

    String id="", nombre="", telefono="", direccion="", email="", autorizado="";

  • PGINA 58

    int ID=1, NOMBRE=2, TELEFONO=3, DIRECCION=4, EMAIL=5, AUTORIZADO=6;

    int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese

    String en la variable correspondiente

    while(st.hasMoreTokens()){ //sigue en el ciclo mientras hallan mas tokens

    if(contador==ID)

    id=st.nextToken();

    else if (contador==NOMBRE)

    nombre=st.nextToken();

    else if(contador==TELEFONO)

    telefono=st.nextToken();

    else if(contador==DIRECCION)

    direccion=st.nextToken();

    else if(contador==EMAIL)

    email=st.nextToken();

    else if(contador==AUTORIZADO)

    autorizado=st.nextToken();

    contador++;

    }//fin while

    if(identificador.equalsIgnoreCase(id)){

    encontrado = true;

    //variable que guarda los datos del cliente que se quiere borrar y los muestra mediante

    un mensaje

    datosDelClientePorBorrar="ID: "+id+"\nNombre: "+nombre+"\nTelefono:

    "+telefono+"\nDireccin: "+direccion+"\ne-mail: "+email+"\nAutorizado: "+autorizado;

    }//fin if

    else

    registroActual= entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null, fnfe);

  • PGINA 59

    }//fin catch

    catch(IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }//fin catch

    return encontrado;

    }//fin buscarCliente

    public void eliminarCliente(String Idcliente){

    //archivo clientes.txt donde se encuentra la informacion de los clientes

    File archivo=new File("Clientes.txt");

    //archivo temporal.txt archivo temporal para realizar la actualizacion de la informacion

    File temporal=new File("temporal.txt");

    try{

    // se abre el archivo de lectura(clientes.txt)

    FileReader archivoLectura=new FileReader(archivo);

    BufferedReader buffer=new BufferedReader(archivoLectura);

    //se abre el archivo temporal.txt de escritura para pasar los registros desde el archivo

    clientes.txt

    FileWriter archivoEscritura=new FileWriter(temporal);

    BufferedWriter bufferTemp=new BufferedWriter(archivoEscritura);

    String linea=buffer.readLine();

    // se recorren todos los registros del archivo principal clientes.txt

    while(linea!=null){//mientras la linea del archivo no est vacia se seguir leyendo el archivo

    String[] registro=linea.split(";");

    //si el registro tiene el mismo id del cliente a eliminar no se agrega al nuevo archivo

    if(!registro[0].equals(Idcliente)){

    bufferTemp.write(linea);

    bufferTemp.newLine();

  • PGINA 60

    }

    linea=buffer.readLine();

    }//fin del while

    //se cierran los dos archivos el temporal.txt y clientes.txt

    buffer.close();

    bufferTemp.close();

    try {

    File inFile = new File("temporal.txt");

    File outFile = new File("clientes.txt");

    FileInputStream in = new FileInputStream(inFile);

    FileOutputStream out = new FileOutputStream(outFile);

    int c;

    while( (c = in.read() ) != -1)//aqu se transfieren los datos de temporal.txt a

    clientes.txt hasta que en el temporal no tenga datos que leer

    out.write(c);

    in.close();

    out.close();

    } catch(IOException ioE) {

    JOptionPane.showMessageDialog(this,"Hubo un error a la hora de

    borrar");

    }

    }//fin try

    catch(Exception ex){

    ex.printStackTrace();

  • PGINA 61

    }

    }//fin del metodo eliminar cliente

    }//fin de la clase borrarClientes

    Clase borrarPelicula.

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.io.BufferedReader;

    import java.io.BufferedWriter;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.IOException;

    import java.util.StringTokenizer;

    import javax.swing.BoxLayout;

    import javax.swing.JButton;

    import javax.swing.JInternalFrame;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.JTextField;

    public class borrarPelicula extends JInternalFrame implements ActionListener{

    //global

    JLabel JL_identificador;

  • PGINA 62

    JTextField JTF_identificador;

    JButton JB_mostrarDatos;

    JPanel JP_principal, JP_identificador, JP_boton;

    String identificador; //recibe el dato del nmero de cliente por eliminar o borrar

    insertarPelicula insertP;

    String datosPeliculaPorBorrar;

    //***CONSTRUCTOR***

    public borrarPelicula() {

    super("Borrar Pelcula", false, true, false, true);

    setVisible(true);

    setLocation(100,10); //ubicacin

    setSize(400,150);//El tamao de la ventana

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    //instancia de objetos

    //(etiquetas)

    JL_identificador = new JLabel("ID de la pelcula a borrar");

    //(Campos de texto)

    JTF_identificador = new JTextField(2);

    //(Botones)

    JB_mostrarDatos = new JButton("Mostrar datos!");

    //(paneles)

    JP_principal = new JPanel();

    JP_identificador = new JPanel();

    JP_boton = new JPanel();

    //pegat objetos en su determinado panel

    JP_identificador.add(JL_identificador);

    JP_identificador.add(JTF_identificador);

    JP_boton.add(JB_mostrarDatos);

  • PGINA 63

    //pegar paneles al panel principal

    JP_principal.add(JP_identificador);

    JP_principal.add(JP_boton);

    JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));

    //atributos a los objetos

    JB_mostrarDatos.addActionListener(this);

    this.add(JP_principal);

    }//****FIN CONSTRUCTOR****

    public void actionPerformed(ActionEvent e){

    boolean llenadoCorrecto=false;

    if(e.getSource()==JB_mostrarDatos)

    identificador=JTF_identificador.getText();

    if(identificador.length()==0){

    JOptionPane.showMessageDialog(null,"Digitar identificador!");

    JTF_identificador.setText("");

    }//fin if

    else{

    if(buscarPelicula(identificador)==true)

    llenadoCorrecto=true;

    else{

    JOptionPane.showMessageDialog(null, "Pelicula NO encontrada!", "ERROR!",

    JOptionPane.WARNING_MESSAGE);

    JTF_identificador.setText("");

  • PGINA 64

    }//fin else

    if(llenadoCorrecto==true){

    JOptionPane.showMessageDialog(null, datosPeliculaPorBorrar,"DATOS DE LA

    PELICULA "+identificador, JOptionPane.INFORMATION_MESSAGE);

    int borrar= JOptionPane.showConfirmDialog(null, "Desea borrar la pelicula?", "BORRAR

    PELICULA!", JOptionPane.YES_NO_CANCEL_OPTION);

    if(borrar==0){

    eliminarPelicula(identificador);

    JOptionPane.showMessageDialog(null, "Pelicula Borrada!");

    dispose();

    }///fin if

    else if(borrar==1){

    JOptionPane.showMessageDialog(null, "NO ha borrado la pelicula " +

    JTF_identificador.getText());

    JTF_identificador.setText("");

    }//fin else

    else if(borrar==2){

    JOptionPane.showMessageDialog(null, "Ha cancelado el borrado", "CANCELADO",

    JOptionPane.INFORMATION_MESSAGE);

    dispose();

    }//fin else if

    }//fin if

    }//fin else

    }//fin actionPerformed

  • PGINA 65

    //**Metodo que realiza la bsqueda de una pelicula y devulve true si la pelicula se encuentra en el

    archivo, de lo contrario devuelve false

    public boolean buscarPelicula(String identificador){

    insertP = new insertarPelicula(null, null, null, null, null, null);

    boolean encontrado= false;

    BufferedReader entradaDeArchivo = insertP.getBufferedReader();

    try{

    String registroActual = entradaDeArchivo.readLine(); //se obtiene toda la linea de ese

    registro

    while(registroActual!= null && encontrado==false/*o tambien !encontrado*/){

    StringTokenizer st = new StringTokenizer(registroActual, ";");

    String id="", nombre="", clasificacion="", reparto="", ao="", categoria="";

    int ID=1, NOMBRE=2, CLASIFICACION=3, REPARTO=4, AO=5, CATEGORIA=6;

    int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese

    String en la variable correspondiente

    while(st.hasMoreTokens()){ //sigue en el ciclo mientras hallan mas tokens

    if(contador==ID)

    id=st.nextToken();

    else if (contador==NOMBRE)

    nombre=st.nextToken();

    else if(contador==CLASIFICACION)

    clasificacion=st.nextToken();

    else if(contador==REPARTO)

  • PGINA 66

    reparto=st.nextToken();

    else if(contador==AO)

    ao=st.nextToken();

    else if(contador==CATEGORIA)

    categoria=st.nextToken();

    contador++;

    }//fin while

    if(identificador.equalsIgnoreCase(id)){

    encontrado = true;

    //variable que guarda los datos de la pelicula que se quiere borrar y los muestra

    mediante un mensaje

    datosPeliculaPorBorrar = "ID"+id+"\nNombre: "+nombre+"\nClasificacin:

    "+clasificacion+"\nReparto: "+reparto+"\nAo: "+ao+"\nCategora: "+categoria;

    }//fin if

    else

    registroActual= entradaDeArchivo.readLine();

    }//fin while

    }//fin try

    catch(FileNotFoundException fnfe){

    JOptionPane.showMessageDialog(null, fnfe);

    }//fin catch

    catch(IOException ioE){

    JOptionPane.showMessageDialog(null, ioE);

    }//fin catch

    return encontrado;

    }//fin buscarPelicula

    //**************************************************************************************************************

    *********************************************************************

  • PGINA 67

    //**************************************************************************************************************

    *********************************************************************

    //**************************************************************************************************************

    *********************************************************************

    //**************************************************************************************************************

    *********************************************************************

    public void eliminarPelicula(String IdPelicula){

    //archivo clientes.txt donde se encuentra la informacion de los clientes

    File archivo=new File("Peliculas.txt");

    //archivo temporal.txt archivo temporal para realizar la actualizacion de la informacion

    File temporal=new File("temporal.txt");

    try{

    // se abre el archivo de lectura(clientes.txt)

    FileReader archivoLectura=new FileReader(archivo);

    BufferedReader buffer=new BufferedReader(archivoLectura);

    //se abre el archivo temporal.txt de escritura para pasar los registros desde el archivo

    clientes.txt

    FileWriter archivoEscritura=new FileWriter(temporal);

    BufferedWriter bufferTemp=new BufferedWriter(archivoEscritura);

    String linea=buffer.readLine();

    // se recorren todos los registros del archivo principal clientes.txt

    while(linea!=null){//mientras la linea del archivo no est vacia se seguir leyendo el archivo

    String[] registro=linea.split(";");

    //si el registro tiene el mismo id del cliente a eliminar no se agrega al nuevo archivo

    if(!registro[0].equals(identificador)){

    bufferTemp.write(linea);

    bufferTemp.newLine();

    }

  • PGINA 68

    linea=buffer.readLine();

    }//fin del while

    //se cierran los dos archivos el temporal.txt y clientes.txt

    buffer.close();

    bufferTemp.close();

    try {

    File inFile = new File("temporal.txt");

    File outFile = new File("Peliculas.txt");

    FileInputStream in = new FileInputStream(inFile);

    FileOutputStream out = new FileOutputStream(outFile);

    int c;

    while( (c = in.read() ) != -1)//aqu se transfieren los datos de temporal.txt a

    clientes.txt hasta que en el temporal no tenga datos que leer

    out.write(c);

    in.close();

    out.close();

    } catch(IOException ioE) {

    JOptionPane.showMessageDialog(this,"