video club cine mania.pdf
-
Upload
antolin-arias -
Category
Documents
-
view
35 -
download
3
Transcript of video club cine mania.pdf
-
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,"