Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
Contenido
1.
INTRODUCCION. ......................................................................................................................... 3
1.1.
1.2.
1.3.
1.4.
1.5.
Alcances. .................................................................................................................................... 5
2.2.
Antecedentes. ......................................................................................................................... 6
3.2.
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 1
PGINA 2
1.
INTRODUCCION.
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.
PGINA 4
1.5. ALCANCES.
El sistema a desarrollar tendr la capacidad de:
Altas de productos.
Baja de productos.
Consulta de productos.
Renta de productos.
PGINA 5
2.
DATOS DE LA ORGANIZACIN.
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.
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 7
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 8
PGINA 9
PGINA 10
PGINA 11
PGINA 12
PGINA 13
PGINA 14
PGINA 15
Ventana acerca de: desde aqu se pueden ver los datos de los
desarrolladores del sistema:
PGINA 16
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;
static principal p;
//*****CONTENEDOR****
public principal(){
super("VIDEOCLUB!CineMania");
c = getContentPane();//se crea el contenedor
JDP_escritorio=new JDesktopPane();
JMB_menu =new JMenuBar();
try{
pim = new pintaImagen();
JDP_escritorio.setBorder(pim);
}
catch(Exception e){
System.out.print(e);
}
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 19
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 21
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);
if(pegar==true)
pegar = false;
else
pegar = true;
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 24
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;
// 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 26
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 27
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
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()
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 31
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 32
/**
* @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
JOptionPane.showMessageDialog(null, fnfe);
}
return entradaDeArchivo;
}//fin getBufferedReader
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 34
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;
//global
JLabel
JL_numeroPelicula,
JL_nombrePelicula,
JL_categoraPelicula, JL_clasificacinPelicula;
JL_repartoPelicula,
JL_aoPelicula,
JButton JB_insertar;
JRadioButton /*para la clacificacin*/JRB_drama, JRB_comedia, JRB_accion, JRB_infantil,
JRB_suspenso, JRB_terror, JRB_cienciaFiccion
PGINA 35
private String
id,
nombre,
reparto,
ao,
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 36
this.setCategoria(categoria);
//(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 37
//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();
JTF_numeroPelicula.setEditable(false);
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);
PGINA 39
//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());
}
});
setClasificacion("ciencia ficcin");
System.out.println(getClasificacion());
}
});
setClasificacion("suspenso");
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
PGINA 42
this.add(JP_principal);
}//****FIN CONSTRUCTOR****
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
JOptionPane.WARNING_MESSAGE);
espacios!", "ERROR!",
}
else if(!JTF_ano.getText().matches("\\d{4}"))
JOptionPane.showMessageDialog(null,
JOptionPane.WARNING_MESSAGE);
"Formato
de
ao
incorrecto",
"ERROR!",
PGINA 43
else{
escribeArchivo();
escribeID();
JTF_ano.setText("");
JTF_nombrePelicula.setText("");
JTA_reparto.setText("");
JTF_numeroPelicula.setText(""+UltimoID());
}//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
try{
File f1;
f1 = new File("Peliculas.txt");
FileOutputStream fos;
fos=new FileOutputStream(f1,true);
PrintStream ps;
PGINA 44
ps = new PrintStream(fos);
String idPelicula;
}//Fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null,fnfe);
}//fin catch
}//Fin escribeArchivo()
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
PGINA 45
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);
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 46
try{
while(registroActual!=null){
indiceArregloPeliculas++;
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 47
reparto=st.nextToken();
else if(contador==AO)
ao=st.nextToken();
else if(contador==CATEGORIA)
categoria=st.nextToken();
contador++;
}//fin while
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 48
/**
* @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 49
*/
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 50
/**
* @return the categoria
*/
public String getCategoria() {
return categoria;
}
/**
* @param categoria the categoria to set
*/
public void setCategoria(String categoria) {
this.categoria = categoria;
}
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);
PGINA 51
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
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
}//fin getBufferedReader
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 53
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;
//global
JLabel JL_identificador;
JTextField JTF_identificador;
JButton JB_mostrarDatos;
borrar
//***CONSTRUCTOR***
PGINA 54
public borrarClientes() {
//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();
JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));
JB_mostrarDatos.addActionListener((ActionListener) this);
this.add(JP_principal);
}//****FIN CONSTRUCTOR****
identificador= JTF_identificador.getText();
if(identificador.length()==0)
JOptionPane.showMessageDialog(null,
JOptionPane.ERROR_MESSAGE);
"Debe
digitar
un
identificador",
"ERROR!",
else{
if(buscarCliente(identificador)==true)
datoCorrecto=true;
else{
JOptionPane.showMessageDialog(null,
JOptionPane.WARNING_MESSAGE);
"Cliente
NO
encontrado!",
"ERROR!",
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 56
else if(borrar==1){
JOptionPane.showMessageDialog(null,
JTF_identificador.getText());
"NO
ha
borrado
el
cliente
"
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
try{
String registroActual = entradaDeArchivo.readLine(); //se obtiene toda la linea de ese
registro
while(registroActual!= null && encontrado==false/*o tambien !encontrado*/){
PGINA 57
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
}//fin catch
catch(IOException ioE){
JOptionPane.showMessageDialog(null, ioE);
}//fin catch
return encontrado;
}//fin buscarCliente
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();
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 59
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");
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 60
}
}//fin del metodo eliminar cliente
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;
//global
JLabel JL_identificador;
PGINA 61
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() {
//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();
PGINA 62
JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));
this.add(JP_principal);
}//****FIN CONSTRUCTOR****
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,
JOptionPane.WARNING_MESSAGE);
"Pelicula
NO
encontrada!",
"ERROR!",
JTF_identificador.setText("");
PGINA 63
}//fin else
if(llenadoCorrecto==true){
JOptionPane.showMessageDialog(null, datosPeliculaPorBorrar,"DATOS
PELICULA "+identificador, JOptionPane.INFORMATION_MESSAGE);
DE
LA
"NO
ha
borrado
la
pelicula
"
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 64
//**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){
try{
String registroActual = entradaDeArchivo.readLine(); //se obtiene toda la linea de ese
registro
while(registroActual!= null && encontrado==false/*o tambien !encontrado*/){
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
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 66
//**************************************************************************************************************
*********************************************************************
//**************************************************************************************************************
*********************************************************************
//**************************************************************************************************************
*********************************************************************
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();
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 67
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");
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();
}
}//fin del metodo eliminaePelicula
PGINA 68
Clase actualizarCliente
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
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.io.InputStreamReader;
import java.util.StringTokenizer;
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.JTextField;
import javax.swing.text.MaskFormatter;
//global
ImageIcon II_imagen11;
JLabel JL_idMostrar,/*Labels para usar en el panel que muestra los datos actuales*/
JL_idCliente1,
JL_nombre1, JL_direccion1, JL_email1, JL_telefono1, JL_autorizado1,
/*Labels para usar en el panel que actualiza los deatos*/ JL_idCliente2, JL_nombre2,
JL_direccion2, JL_email2, JL_telefono2, JL_autorizado2;
JTextField JTF_idMostrar,/*Campos de texto para utilizar en el panel que muestra los datos*/
JTF_idCliente1,
JTF_nombre1, JTF_direccion1, JTF_email1, JTF_telefono1, JTF_autorizado1,
/*Campos de texto para utilizar en el panel que actuali datos*/ JTF_idCliente2,
JTF_nombre2,
JTF_direccion2, JTF_email2, JTF_telefono2, JTF_autorizado2;
JPanel
JP_principal, JP_norte, JP_este, JP_oeste,//cada panel contendr objetos que
conformarn la ventana
JP_id1, JP_id2, JP_nombre1, JP_nombre2, JP_direccion1, JP_direccion2, JP_email1,
JP_email2, JP_telefono1,
JP_telefono2, JP_autorizado1, JP_autorizado2;
JButton
//***CONSTRUCTOR***
public actualizarClientes() {
//instanciar objetos
//(Image Icons)
II_imagen11 = new ImageIcon("imagen11.gif");
//(Etiquetas)
JL_autorizado1 = new JLabel("Autorizado");
JL_autorizado2 = new JLabel("Autorizado");
JL_direccion1 = new JLabel("Direccion");
JL_direccion2 = new JLabel("Direccion");
JL_email1 = new JLabel("e-mail");
JL_email2 = new JLabel("e-mail");
JL_idCliente1 = new JLabel("id");
JL_idCliente2 = new JLabel("id");
JL_idMostrar = new JLabel("id cliente actualizar");
JL_nombre1 = new JLabel("Nombre");
JL_nombre2 = new JLabel("Nombre");
JL_telefono1 = new JLabel("Telefono");
JL_telefono2 = new JLabel("Telefono");
//(campos de texto)
JTF_autorizado1 = new JTextField(10);
PGINA 71
//(botones)
JB_actualizar = new JButton("Actualizar!");
JB_mostrarDatos = new JButton("Mostrar datos");
//paneles
JP_principal = new JPanel();
JP_este = new JPanel();
JP_norte = new JPanel();
JP_oeste= new JPanel();
PGINA 72
JP_principal.setLayout(new BorderLayout());
JP_norte.setLayout(new FlowLayout());
JP_este.setLayout(new GridLayout(6, 1));
JP_oeste.setLayout(new GridLayout(6, 1));
JP_norte.add(JL_idMostrar);
JP_norte.add(JTF_idMostrar);
JP_norte.add(JB_mostrarDatos);
JP_norte.add(JB_actualizar);
JP_id1.add(JL_idCliente1);
JP_id1.add(JTF_idCliente1);
JP_nombre1.add(JL_nombre1);
PGINA 73
JP_nombre1.add(JTF_nombre1);
JP_direccion1.add(JL_direccion1);
JP_direccion1.add(JTF_direccion1);
JP_email1.add(JL_email1);
JP_email1.add(JTF_email1);
JP_telefono1.add(JL_telefono1);
JP_telefono1.add(JTF_telefono1);
JP_autorizado1.add(JL_autorizado1);
JP_autorizado1.add(JTF_autorizado1);
JP_oeste.add(JP_id1);
JP_oeste.add(JP_nombre1);
JP_oeste.add(JP_direccion1);
JP_oeste.add(JP_email1);
JP_oeste.add(JP_telefono1);
JP_oeste.add(JP_autorizado1);
JP_id2.add(JL_idCliente2);
JP_id2.add(JTF_idCliente2);
JP_nombre2.add(JL_nombre2);
JP_nombre2.add(JTF_nombre2);
JP_direccion2.add(JL_direccion2);
JP_direccion2.add(JTF_direccion2);
JP_email2.add(JL_email2);
JP_email2.add(JTF_email2);
JP_telefono2.add(JL_telefono2);
JP_telefono2.add(JTF_telefono2);
JP_autorizado2.add(JL_autorizado2);
JP_autorizado2.add(JTF_autorizado2);
JP_este.add(JP_id2);
JP_este.add(JP_nombre2);
PGINA 74
JP_este.add(JP_direccion2);
JP_este.add(JP_email2);
JP_este.add(JP_telefono2);
JP_este.add(JP_autorizado2);
JB_mostrarDatos.addActionListener(this);
JB_actualizar.addActionListener(this);
//El botn actualizar estar disponible hasta que los datos del cliente sean revelados
JB_actualizar.setEnabled(false);
JP_principal.add(JP_norte, BorderLayout.NORTH);
JP_principal.add(JP_oeste, BorderLayout.WEST);
JP_principal.add(JP_este, BorderLayout.EAST);
this.add(JP_principal);
}//****FIN CONSTRUCTOR****
PGINA 75
boolean llenadoCorrecto=false;
if(e.getSource()==JB_mostrarDatos){
setIdentificador(JTF_idMostrar.getText());
if(getIdentificador().length()==0) //en caso que el, tamao del String recibido sea cero, se
dleplegar un mensaje indicando el error
JOptionPane.showMessageDialog(null, "Debe ingresar el identificador del cliente");
else{
if(buscarCliente(identificador)==true){
JB_mostrarDatos.setEnabled(false); //se desabilita el boton, ya no se ocupa
JB_actualizar.setEnabled(true);
operacion
JTF_idMostrar.setEditable(false); //Se deshabilita la opcion de editar el campo
MostrarDatos();
System.out.println("El cliente existe");
}
else
JOptionPane.showMessageDialog(null, "El identificador para ese cliente no se
encuentra\nDigitar
un
identificador
correcto!",
"Error
al
buscar
el
cliente",
JOptionPane.WARNING_MESSAGE);
JTF_idMostrar.setText("");
}//fin else
}//fin getSource de JB_mostrarDatos
if(e.getSource()==JB_actualizar){
//Se obtienen los datos de los campos de texto para que sean procesados..
setNuevoNombre(JTF_nombre2.getText());
PGINA 76
setNuevoDireccion(JTF_direccion2.getText());
setNuevoemail(JTF_email2.getText());
setNuevoTelefono(JTF_telefono2.getText());
setNuevoAutorizado(JTF_autorizado2.getText());
//escribeNuevoCliente(identificador);
//en caso de que algn dato no se haya ingresado o un campo este vaco o el tamao del
String es cero, se despliega un mensaje indicando el error
if(getNuevoAutorizado().length()==0
||
getNuevoDireccion().length()==0
||
getNuevoNombre().length()==0 || getNuevoTelefono().length()==0 || getNuevoemail().length()==0)
JOptionPane.showMessageDialog(null, "Debe rellenar todos los campos!");
else if(!JTF_nombre2.getText().matches("[a-zA-Z]+\\s+[a-zA-z]+"))
JOptionPane.showMessageDialog(null, "Debe digitar nombre y apellido");
else if(!JTF_telefono2.getText().matches("\\d{8}"))
JOptionPane.showMessageDialog(this, "Formato de telfono incorrecto");
else if(!JTF_autorizado2.getText().matches("[a-zA-Z]+\\s+[a-zA-z]+"))
JOptionPane.showMessageDialog(null,
autorizado");
"Debe
digitar
nombre
apellido\ndel
else{
actualizarCliente(getIdentificador(),
getNuevoNombre(),
getNuevoemail(), getNuevoTelefono(), getNuevoAutorizado());
getNuevoDireccion(),
//**************************************************************************************************************
*******************************************************************************
public void actualizarCliente(String IDCliente, String nombre, String direccion, String email, String
telefono, String autorizado){
//archivo productos.txt donde se encuentra la informacion de los productos
PGINA 77
try{
// se abre el archivo clientes de lectura
FileReader archivoLectura=new FileReader(archivo);
BufferedReader buffer=new BufferedReader(archivoLectura);
//se abre el archivo temp 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 lee una linea del archivo clientes.txt
String[] registro=linea.split(";");//este arreglo toma los datos de la linea hasta el primer punto
y coma
";"
PGINA 78
try {
File inFile = new File("temporal.txt");//se llama el archivo temporal.txt
File outFile = new File("clientes.txt");//se llama el archivo clientes.txt
FileInputStream
FileInputStream pasandole un archivo
in
new
FileInputStream(inFile);//se
crea
el
int c;
while( (c = in.read() ) != -1)//mientras que existan datos en temporal.txt
out.write(c);//se escribe lo que tenga temporal.txt a clientes.txt
}//fin try
catch(Exception ex){
ex.printStackTrace();
}//fin catch
PGINA 79
}//fin de actualizarCliente
//**************************************************************************************************************
*******************************************************************************
String datosClienteMostrar="";
datosClienteMostrar=JTF_idMostrar.getText();
JTF_idCliente1.setText(datosClienteMostrar);
JTF_idCliente2.setText(datosClienteMostrar);
JTF_nombre1.setText(nombre);
JTF_telefono1.setText(telefono);
JTF_direccion1.setText(direccion);
JTF_email1.setText(email);
JTF_autorizado1.setText(autorizado);
}//fin mostrarDatos
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
JOptionPane.showMessageDialog(null, fnfe);
}
return entradaDeArchivo;
}//fin getBufferedReader
try{
String registroActual = entradaDeArchivo.readLine(); //se obtiene toda la linea de ese
registro
while(registroActual!= null && encontrado==false/*o tambien !encontrado*/){
int ID=1,
NOMBRE=2,
TELEFONO=5,
DIRECCION=3,
EMAIL=4,
AUTORIZADO=6;
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
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(idABuscar.equalsIgnoreCase(id))
encontrado = true;
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 nombreABuscar
/**
PGINA 82
/**
* @param identificador the identificador to set
*/
public void setIdentificador(String identificador) {
this.identificador = identificador;
}
/**
* @return the nuevoNombre
*/
public String getNuevoNombre() {
return nuevoNombre;
}
/**
* @param nuevoNombre the nuevoNombre to set
*/
public void setNuevoNombre(String nuevoNombre) {
this.nuevoNombre = nuevoNombre;
}
/**
* @return the nuevoDireccion
*/
public String getNuevoDireccion() {
return nuevoDireccion;
PGINA 83
/**
* @param nuevoDireccion the nuevoDireccion to set
*/
public void setNuevoDireccion(String nuevoDireccion) {
this.nuevoDireccion = nuevoDireccion;
}
/**
* @return the nuevoemail
*/
public String getNuevoemail() {
return nuevoemail;
}
/**
* @param nuevoemail the nuevoemail to set
*/
public void setNuevoemail(String nuevoemail) {
this.nuevoemail = nuevoemail;
}
/**
* @return the nuevoTelefono
*/
public String getNuevoTelefono() {
return nuevoTelefono;
}
/**
* @param nuevoTelefono the nuevoTelefono to set
PGINA 84
*/
public void setNuevoTelefono(String nuevoTelefono) {
this.nuevoTelefono = nuevoTelefono;
}
/**
* @return the nuevoAutorizado
*/
public String getNuevoAutorizado() {
return nuevoAutorizado;
}
/**
* @param nuevoAutorizado the nuevoAutorizado to set
*/
public void setNuevoAutorizado(String nuevoAutorizado) {
this.nuevoAutorizado = nuevoAutorizado;
}
/*
public boolean escribeNuevoCliente(String idABuscar){
PGINA 85
int ID=1,
NOMBRE=2,
TELEFONO=5,
DIRECCION=3,
EMAIL=4,
AUTORIZADO=6;
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
email=st.nextToken();
else if(contador==AUTORIZADO)
autorizado=st.nextToken();
contador++;
}//fin while
if(idABuscar.equalsIgnoreCase(id)){
String otronombre = getNuevoNombre();
String Datos = id+";"+otronombre+";";
ps.println(Datos);
registroActual = entradaDeArchivo.readLine();
}//fin del if
else{
String Datos = id+";"+nombre+";";
ps.println(Datos);
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 nombreABuscar
PGINA 87
*/
Clase actualizarPelicula
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
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.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.io.InputStreamReader;
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;
PGINA 88
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
//global
JLabel JL_idMostrar,/*labels
actuales*/JL_idPelicula1,
para
utilizar
en
el
panel
que
muestra
los
datos
JTextField JTF_idMostrar, /*campos de texto para utilizar en el panel que muestra los datos por
actulizar*/JTF_idPelicula1,
JTF_nombre1,
JTF_reparto1,
JTF_cambiarClasificacin,
JTF_ao1,
JTF_categora1,
JTF_clasificacin,
/*campos de texto para usar en el panel que obtiene los nuevos datos*/ JTF_idPelicula2,
JTF_nombre2, JTF_reparto2,
JTF_ao2;
nuevoCategoria;
//recibe el nuevo dato correspondiente a la categoria de la pelicula,
determinada por los JRadioButtons del ButtonGroup BG_categora/Se inicializa en cualquier
String(este caso "false")para que sea comparada y asi comprobar su modificacion
//***CONSTRUCTOR***
public actualizarPelicula() {
//(etiquetas)
JL_ao1 = new JLabel("Ao");
PGINA 90
//(Campos de texto)
JTF_ao1 = new JTextField(4);
JTF_ao2 = new JTextField(4);
JTF_categora1 = new JTextField(8);
JTF_clasificacin = new JTextField(8);
JTF_idMostrar = new JTextField(2);
JTF_idPelicula1 = new JTextField(2);
JTF_idPelicula2 = new JTextField(2);
JTF_nombre1 = new JTextField(10);
JTF_nombre2 = new JTextField(10);
JTF_reparto1 = new JTextField(10);
JTF_reparto2 = new JTextField(10);
JTF_cambiarClasificacin = new JTextField(10);
//(Radio botones)
JRB_accion = new JRadioButton("Accin");
JRB_cienciaFiccion = new JRadioButton("Ciencia Ficcin");
JRB_comedia = new JRadioButton("Comedia");
JRB_drama = new JRadioButton("Drama");
PGINA 91
//(botones)
JB_actualizar = new JButton("Actualizar!");
JB_mostrar = new JButton("Mostrar datos");
JB_verificar = new JButton("Verificar");
JB_atras = new JButton("Atras!");
//(paneles)
JP_principal = new JPanel();
JP_este= new JPanel();
JP_norte = new JPanel();
JP_oeste = new JPanel();
JP_sur = new JPanel();
JP_ao1 = new JPanel();
JP_categora1 = new JPanel();
JP_clasificacin1= new JPanel();
JP_idPeli1= new JPanel();
JP_nombre1= new JPanel();
JP_reparto1=new JPanel();
JP_nCategora = new JPanel();
JP_nClasificacion = new JPanel();
JP_idPeli2 = new JPanel();
PGINA 92
panel1=new JPanel();
panel2 = new JPanel();
BG_categoria.add(JRB_estreno);
BG_categoria.add(JRB_noEstreno);
JP_norte.add(JL_idMostrar);
JP_norte.add(JTF_idMostrar);
JP_norte.add(JB_mostrar);
JP_idPeli1.add(JL_idPelicula1);
JP_idPeli1.add(JTF_idPelicula1);
JP_nombre1.add(JL_nombre1);
PGINA 93
JP_nombre1.add(JTF_nombre1);
JP_clasificacin1.add(JL_clasificacion1);
JP_clasificacin1.add(JTF_clasificacin);
JP_reparto1.add(JL_reparto1);
JP_reparto1.add(JTF_reparto1);
JP_ao1.add(JL_ao1);
JP_ao1.add(JTF_ao1);
JP_categora1.add(JL_categora1);
JP_categora1.add(JTF_categora1);
JP_oeste.add(JP_idPeli1);
JP_oeste.add(JP_nombre1);
JP_oeste.add(JP_clasificacin1);
JP_oeste.add(JP_reparto1);
JP_oeste.add(JP_ao1);
JP_oeste.add(JP_categora1);
JP_sur.add(JB_atras);
JP_sur.add(JB_verificar);
JP_sur.add(JB_actualizar);
JP_idPeli2.add(JL_idPelicula2);
JP_idPeli2.add(JTF_idPelicula2);
JP_nombre2.add(JL_nombre2);
JP_nombre2.add(JTF_nombre2);
JP_nClasificacion.add(JL_clasificacion2);
JP_ao2.add(JL_ao2);
JP_ao2.add(JTF_ao2);
JP_reparto2.add(JL_reparto2);
JP_reparto2.add(JTF_reparto2);
JP_nCategora.add(JL_categora2);
PGINA 94
JP_categora2.add(JRB_estreno);
JP_categora2.add(JRB_noEstreno);
JP_este.add(JP_idPeli2);
JP_este.add(JP_nombre2);
JP_este.add(JP_nClasificacion);
JP_este.add(JP_clasificacion2);
JP_este.add(JP_reparto2);
JP_este.add(JP_ao2);
JP_este.add(JP_nCategora);
JP_este.add(JP_categora2);
JP_clasificacion2.add(panel2, BorderLayout.WEST);
JTF_nombre1.setEditable(false);
JTF_clasificacin.setEditable(false);
JTF_reparto1.setEditable(false);
JTF_ao1.setEditable(false);
JTF_categora1.setEditable(false);
JTF_idPelicula1.setEditable(false);
JTF_idPelicula2.setEditable(false);
JB_actualizar.setEnabled(false);
JB_verificar.setEnabled(false);
JB_atras.setEnabled(false);
JTF_cambiarClasificacin.setEditable(false);
JB_mostrar.addActionListener(this);
JB_atras.addActionListener(this);
JB_verificar.addActionListener(this);
JB_actualizar.addActionListener(this);
JP_principal.add(JP_norte, BorderLayout.NORTH);
JP_principal.add(JP_sur, BorderLayout.SOUTH);
JP_principal.add(JP_este, BorderLayout.EAST);
JP_principal.add(JP_oeste, BorderLayout.WEST);
//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 "nuevoClasificacion" cambia
// Clase interna del JRB_accion, clasificacion pasa a ser "accion"
PGINA 96
JRB_accion.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("accion");
System.out.println(getNuevoClasificacion());
}
});
// Clase interna del JRB_cienciaFiccion, clasificacion pasa a ser "ciencia ficcion"
JRB_cienciaFiccion.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("ciencia ficcion");
System.out.println(getNuevoClasificacion());
}
});
// Clase interna del JRB_comedia, clasificacion pasa a ser "comedia"
JRB_comedia.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("comedia");
System.out.println(getNuevoClasificacion());
}
});
// Clase interna del JRB_drama, clasificacion pasa a ser "drama"
JRB_drama.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("drama");
System.out.println(getNuevoClasificacion());
}
});
// Clase interna del JRB_infantil, clasificacion pasa a ser "infantil"
JRB_infantil.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("infantil");
System.out.println(getNuevoClasificacion());
PGINA 97
}
});
// Clase interna del JRB_suspenso, clasificacion pasa a ser "suspenso"
JRB_suspenso.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("suspenso");
System.out.println(getNuevoClasificacion());
}
});
// Clase interna del JRB_terror, clasificacion pasa a ser "terror"
JRB_terror.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoClasificacion("terror");
System.out.println(getNuevoClasificacion());
}
});
//Con las siguientes clases annimas se cambia el estado de la String categoria.Se determina
mediante los JRadioButons del grupo BG_categoria
//Cuando se presiona un boton, el estado de la String "nuevoCategoria" cambia
// Clase interna del JRB_estreno, categora pasa a ser "estreno"
JRB_estreno.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setNuevoCategoria("estreno");
System.out.println(getNuevoCategoria());
}
});
setNuevoCategoria("NO estreno");
System.out.println(getNuevoCategoria());
}
});
this.add(JP_principal);
}//****FIN CONSTRUCTOR****
boolean datosCorrectos=false;
boolean peliculaEncontrada=false;
else{
JOptionPane.showMessageDialog(null, "La pelicula NO se encuentra!", "ERROR!",
JOptionPane.WARNING_MESSAGE);
JTF_idMostrar.setText("");
}//fin else
if(peliculaEncontrada==true){
JTF_idMostrar.setEditable(false);
JB_mostrar.setEnabled(false); //si el dato ingresado es correcto se deshabilitar el botn
JB_verificar.setEnabled(true);//se habilita el boton de verificar los datos por ingresar
}//fin if
}//fin else
}//fin getSource de JB_mostrar
if(
getNuevoClasificacion().equals("false")||getNuevoCategoria().equals("false")||getNuevoNombre().l
ength()==0||getNuevoReparto().length()==0||getNuevoAo().length()==0){
JOptionPane.showMessageDialog(null, "Debe rellenar todos los campos!");
JB_actualizar.setEnabled(false);
}//fin if
else
if(!JTF_ao2.getText().matches("\\d{4}")||Integer.parseInt(JTF_ao2.getText())<1900||Integer.pars
eInt(JTF_ao2.getText())>2014)
JOptionPane.showMessageDialog(null, "Formato de ao incorrecto\nDebe digitar un ao
comprendido entre 1900 y 2014", "ERROR!", JOptionPane.WARNING_MESSAGE);
else{
datosCorrectos=true;
PGINA 100
JTF_nombre2.setEditable(false);
JTF_ao2.setEditable(false);
JTF_reparto2.setEditable(false);
JB_verificar.setEnabled(false);
JB_atras.setEnabled(true);
}//fin else
if(datosCorrectos==true){
JB_actualizar.setEnabled(true);
}//fin if
}//fin try
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Debe rellenar todos los campos!");
}
}//fin getSource JB_verifcar
getNuevoClasificacion(),
}//fin ActionPerformed
String datosClienteMostrar="";
datosClienteMostrar=JTF_idMostrar.getText();
JTF_idPelicula1.setText(datosClienteMostrar);
JTF_idPelicula2.setText(datosClienteMostrar);
JTF_nombre1.setText(nombre);
JTF_clasificacin.setText(clasificacion);
JTF_reparto1.setText(reparto);
JTF_ao1.setText(ao);
JTF_categora1.setText(categoria);
}//fin mostrarDatos
//**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){
try{
PGINA 102
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
}//fin if
else
PGINA 103
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
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
}//fin getBufferedReader
//**************************************************************************************************************
*******************************************************************************
public void actualizarPelicula(String IDPelicula, String nombre, String clasificacion, String reparto,
String ao, String categoria){
//archivo productos.txt donde se encuentra la informacion de los productos
File archivo=new File("Peliculas.txt");
//archivo temp.txt = archivo temporal para realizar la actualizacion de la informacion
File temporal=new File("temporal.txt");
try{
// se abre el archivo clientes de lectura
FileReader archivoLectura=new FileReader(archivo);
BufferedReader buffer=new BufferedReader(archivoLectura);
//se abre el archivo temp 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 lee una linea del archivo clientes.txt
String[] registro=linea.split(";");//este arreglo toma los datos de la linea hasta el primer punto
y coma
PGINA 105
try {
File inFile = new File("temporal.txt");//se llama el archivo temporal.txt
File outFile = new File("Peliculas.txt");//se llama el archivo clientes.txt
FileInputStream
FileInputStream pasandole un archivo
in
new
FileInputStream(inFile);//se
crea
el
int c;
while( (c = in.read() ) != -1)//mientras que existan datos en temporal.txt
out.write(c);//se escribe lo que tenga temporal.txt a clientes.txt
catch(Exception ex){
ex.printStackTrace();
}//fin catch
}//fin de actualizarCliente
/**
* @return the identificador
*/
public String getIdentificador() {
return identificador;
}
/**
* @param identificador the identificador to set
*/
public void setIdentificador(String identificador) {
this.identificador = identificador;
}
/**
* @return the nuevoNombre
*/
public String getNuevoNombre() {
return nuevoNombre;
}
PGINA 107
/**
* @param nuevoNombre the nuevoNombre to set
*/
public void setNuevoNombre(String nuevoNombre) {
this.nuevoNombre = nuevoNombre;
}
/**
* @return the nuevoClasificacion
*/
public String getNuevoClasificacion() {
return nuevoClasificacion;
}
/**
* @param nuevoClasificacion the nuevoClasificacion to set
*/
public void setNuevoClasificacion(String nuevoClasificacion) {
this.nuevoClasificacion = nuevoClasificacion;
}
/**
* @return the nuevoReparto
*/
public String getNuevoReparto() {
return nuevoReparto;
}
/**
* @param nuevoReparto the nuevoReparto to set
*/
public void setNuevoReparto(String nuevoReparto) {
PGINA 108
this.nuevoReparto = nuevoReparto;
}
/**
* @return the nuevoAo
*/
public String getNuevoAo() {
return nuevoAo;
}
/**
* @param nuevoAo the nuevoAo to set
*/
public void setNuevoAo(String nuevoAo) {
this.nuevoAo = nuevoAo;
}
/**
* @return the nuevoCategoria
*/
public String getNuevoCategoria() {
return nuevoCategoria;
}
/**
* @param nuevoCategoria the nuevoCategoria to set
*/
public void setNuevoCategoria(String nuevoCategoria) {
this.nuevoCategoria = nuevoCategoria;
}
/**
PGINA 109
/**
* @param nombreDeArchivo the nombreDeArchivo to set
*/
public void setNombreDeArchivo(String nombreDeArchivo) {
this.nombreDeArchivo = nombreDeArchivo;
}
}//fin de la clase actualizarPelicula
Clase alquilerDePeliculas
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.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
PGINA 110
import javax.swing.JTextField;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
//global
JLabel JL_numeroAlquiler, JL_numeroCliente , JL_fechaEntrega, JL_montoAPAgar;
JTextField
JTF_numeroAlquiler,
JTF_montoAPagar;
JTF_numeroCliente,JTF_ao,
JTF_fechaEntrega,
JLabel JL_hora;
JTextField JTF_hora;
JButton JB_verInformacion,JB_agregarPelicula;
String nombreDeArchivo="Alquileres.txt";
insertarClientes insertC;
insertarPelicula insertP;
private String
IDalquiler,
PGINA 111
IDcliente,
IDpelicula,
fechaAlquiler,
fechaDeEntrega,
totalAPagar="nada";
String cliente, datosDelCliente;
Calendar c2;
Timer timer;
//***CONSTRUCTOR***
public alquilerDePelicula() {
super ("Alquiler de pelicula", true, true, true, true);
setVisible(true);
setLocation(140,10); //ubicacin
setSize(300,700);//El tamao de la ventana
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
/////////////////////////////////////////////////////////////
//instanciar objetos
//(JComboBox)
//(etiquetas)
JL_numeroAlquiler = new JLabel("Alquiler nmero:");
JL_fechaEntrega = new JLabel("Fecha de entrega");
JL_montoAPAgar = new JLabel("Monto a pagar");
PGINA 112
//(Campos de texto)
//(botones)
JB_guardar = new JButton("Generar Alquiler!");
JB_verificarDatos= new JButton("Verificar datos");
//(paneles)
JP_principal = new JPanel();
JP_nALquiler = new JPanel();
JP_nCliente = new JPanel();
JP_nPelicula = new JPanel();
JP_fAlquiler = new JPanel();
JP_fEntrega = new JPanel();
JP_mPagar = new JPanel();
JP_boton = new JPanel();
JP_fechaPrincipal = new JPanel();
//pegar objetos a su respectivo panel
JP_nALquiler.add(JL_numeroAlquiler);
JP_nALquiler.add(JTF_numeroAlquiler);
JP_nCliente.add(JL_numeroCliente);
JP_nCliente.add(JTF_numeroCliente);
JP_fEntrega.add(JL_fechaEntrega);
JP_fEntrega.add(JTF_fechaEntrega);
PGINA 113
JP_mPagar.add(JL_montoAPAgar);
JP_mPagar.add(JTF_montoAPagar);
JP_boton.add(JB_verificarDatos);
JP_boton.add(JB_guardar);
IDalquiler=""+UltimoID();
JTF_numeroAlquiler.setText(IDalquiler);
//atributos
JB_guardar.addActionListener(this);
JB_guardar.setEnabled(false);
JB_verificarDatos.addActionListener(this);
JTF_numeroAlquiler.setEditable(false);
JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));
JTF_fechaEntrega.setEditable(false);
JTF_montoAPagar.setEditable(false);
JP_principal.add(JP_fechaPrincipal);
PGINA 114
this.add(JP_principal);
}//******FIN CONSTRUCTOR*******
boolean datosCorrectos=false;
if(e.getSource()==JB_verificarDatos){
//
setIDcliente(JTF_numeroCliente.getText());
PGINA 115
//setIdAlquiler(esteblecerIDAlquiler());
//instancia de los elementos de la fecha////////////////
c2 = new GregorianCalendar();
String dia = Integer.toString(c2.get(Calendar.DATE));
String mes = Integer.toString(c2.get(Calendar.MONTH)+1);
String annio = Integer.toString(c2.get(Calendar.YEAR));
fechaAlquiler=dia+"-"+mes+"-"+annio;
boolean bisiesto = ((GregorianCalendar) c2).isLeapYear(Integer.parseInt(annio));
/////////////////////////////////////////////////////////////
JTF_fechaEntrega.setText(
determinaFechaDeEntrega(Integer.parseInt(dia),Integer.parseInt(mes) , Integer.parseInt(annio),
bisiesto));
validarCliente();
establecePeliculasPrecio();
//se verifica que se hata escrito en todos los campos necesarios para escribir en el archivo
if(((JTF_numeroCliente.getText().length()>0)&&JTF_fechaEntrega.getText().length()>0)&&JTF_mo
ntoAPagar.getText().length()>0&&getPeliculas().length()>0){
JB_guardar.setEnabled(true);
datosCorrectos=true;
}//fin if
if(e.getSource()==JB_guardar){
escribeArchivo();
PGINA 116
escribeID();
datosCorrectos=false;
JTF_fechaEntrega.setText("");
JTF_montoAPagar.setText("");
JTF_numeroCliente.setText("");
JB_guardar.setEnabled(false);
JB_verificarDatos.setEnabled(true);
JTF_numeroAlquiler.setText(""+UltimoID());
IDalquiler=JTF_numeroAlquiler.getText();
totalAPagar="nada";
setPeliculas("");
if(e.getSource()==JB_agregarPelicula){
principal.setJdialog(true);
totalAPagar="";
if(e.getSource()==JB_verInformacion){
cliente=JTF_numeroCliente.getText();
if(cliente.length()==0)
JOptionPane.showMessageDialog(null,"Debe digitar un identificador" );
else{
PGINA 117
if(buscarCliente(cliente)==false){
JOptionPane.showMessageDialog(null,"El cliente no se encuentra");
JTF_numeroCliente.setText("");
}//fin if
else{
JOptionPane.showMessageDialog(null, datosDelCliente);
}
}//fin actionPerformed
//Se valida el cliente, la aplicacion no deja avanzar hasta que se digite el id de un usuario alojado
en el archivo
public void validarCliente(){
insertC = new insertarClientes(null, null, null, null, null, null);
if(buscarCliente(JTF_numeroCliente.getText())==true){
System.out.println("Cliente encontrado");
}//fin del if
else{
JOptionPane.showMessageDialog(null,
JOptionPane.WARNING_MESSAGE);
"Cliente
NO
encontrado",
"ERROR!",
JTF_numeroCliente.setText("");
}//fin else
}//fin validarPelicula
PGINA 118
//Se validaLa pelicula, la aplicacion no deja avanzar hasta que se digite el id de una pelicula alojada
en el archivo
//**Metodo que realiza la bsqueda entre todos los clientes y devulve true si el cliente se encuentra
en el archivo, de lo contrario devuelve false
public boolean buscarCliente(String identificador){
try{
String registroActual = entradaDeArchivo.readLine(); //se obtiene toda la linea de ese
registro
while(registroActual!= null && encontrado==false/*o tambien !encontrado*/){
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
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
datosDelCliente="ID:
"+id+"\nNombre:
"+nombre+"\nTelefono:
"+telefono+"\nDireccin: "+direccion+"\ne-mail: "+email+"\nAutorizado: "+autorizado;
}
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;
PGINA 120
}//fin buscarCliente
try{
File f1;
File f2;
f1 = new File(nombreDeArchivo);
f2 = new File("Cierre_Mes.txt");
FileOutputStream fos;
FileOutputStream fos2;
fos=new FileOutputStream(f1,true);
fos2= new FileOutputStream(f2, true);
PrintStream ps;
PrintStream ps2;
ps = new PrintStream(fos);
ps2 = new PrintStream(fos2);
String alquiler;
String MESCierre;
alquiler=JTF_numeroAlquiler.getText()+";"+getIDcliente()+";"+getPeliculas()+";"+getFechaAlquiler(
)+";"+JTF_fechaEntrega.getText()+";"+getTotalAPagar();
ps.println(alquiler);
MESCierre=
getMesCierre()+";"+JTF_numeroAlquiler.getText()+";"+getIDcliente()+";"+getPeliculas()+";"+getFec
haAlquiler()+";"+JTF_fechaEntrega.getText()+";"+getTotalAPagar();
ps2.println(MESCierre);
}//Fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null,fnfe);
}//fin catch
PGINA 121
}//Fin escribeArchivo()
/**
* @return the IDcliente
*/
public String getIDcliente() {
return IDcliente;
}
/**
* @return the IDpelicula
*/
public String getIDpelicula() {
return IDpelicula;
}
/**
* @param IDpelicula the IDpelicula to set
*/
public void setIDpelicula(String IDpelicula) {
this.IDpelicula = IDpelicula;
}
/**
PGINA 122
/**
* @param fechaAlquiler the fechaAlquiler to set
*/
public void setFechaAlquiler(String fechaAlquiler) {
this.fechaAlquiler = fechaAlquiler;
}
/**
* @return the fechaDeEntrega
*/
public String getFechaDeEntrega() {
return fechaDeEntrega;
}
/**
* @param fechaDeEntrega the fechaDeEntrega to set
*/
public void setFechaDeEntrega(String fechaDeEntrega) {
this.fechaDeEntrega = fechaDeEntrega;
}
/**
* @return the totalAPagar
*/
public String getTotalAPagar() {
System.out.println("Devuelve"+totalAPagar);
PGINA 123
return totalAPagar;
}
/**
* @param totalAPagar the totalAPagar to set
*/
public void setTotalAPagar(String totalAPagar) {
this.totalAPagar = totalAPagar;
File f1;
f1 = new File("ID_alquiler.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);
int cuentaClientes = 0;
PGINA 124
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
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
PGINA 125
try{
File f1;
f1 = new File("ID_alquiler.txt");
FileOutputStream fos;
fos=new FileOutputStream(f1,true);
PrintStream ps;
ps = new PrintStream(fos);
String ID;
ID=JTF_numeroAlquiler.getText();
ps.println(ID);
}//Fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null,fnfe);
}//fin catch
JTF_numeroAlquiler.setText(""+(UltimoID()));
PGINA 126
while(limite<3){
}//fin del if
else{
while(limite<3){
dia++;
if(dia==32){
dia=1;
mes++;
if(mes==13){
mes=1;
ano++;
}//fin del if
}//fin del if
limite++;
}//fin del while
PGINA 127
if(dia<28){
dia=dia+3;
limite=3;
}//fin del if
else{
while(limite<3){
dia++;
if(dia==31){
dia=1;
mes++;
}//fin del if
limite++;
}//fin del while
PGINA 128
else{
if(bisiesto == false){
while(limite<3){
dia++;
if(dia==28){
dia=1;
mes++;
}//fin del if
limite++;
}//fin del while
else{
while(limite<3){
dia++;
if(dia==29){
dia=1;
mes++;
}//fin del if
PGINA 129
limite++;
}//fin del while
}//Si el ano es bisiesto
}//Fin del caso del mes de fabrero
}//Fin del while
return ""+dia+"-"+mes+"-"+ano;
}//Fin del metodo fecha de entrega
/**
* @return the peliculas
*/
public String getPeliculas() {
return peliculas;
}
/**
PGINA 130
this.peliculas = peliculas;
System.out.println("la global"+this.peliculas);
}
case 7:
day="Sabado ";
}//Fin
switch(mes){
case 1:
meses="Enero";
break;
case 2:
meses="Febrero";
break;
case 3:
meses = "Marzo";
break;
case 4:
meses="Abril";
break;
case 5:
meses="Mayo";
break;
case 6:
meses="Junio";
break;
case 7:
meses="Julio";
break;
case 8:
meses="Agosto";
break;
case 9:
PGINA 132
meses="Setiembre";
break;
case 10:
meses="Octubre";
break;
case 11:
meses="Noviembre";
break;
case 12:
meses="Diciembre";
return fechaFinal;
}//Fin del metodo formateoFecha
if(totalAPagar.equalsIgnoreCase("nada")==false){
File f2 = new File("seleccionPeliculas.txt");
try{
FileInputStream fis = new FileInputStream(f2);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String datos = br.readLine();
PGINA 133
int i = datos.length();
datos=datos.substring(0,i-2);
System.out.println(datos);
StringTokenizer st = new StringTokenizer(datos,";");
totalAPagar=st.nextToken();
peliculas=st.nextToken();
JTF_montoAPagar.setText(totalAPagar);
setPeliculas(peliculas);
f2.delete();
else{
JOptionPane.showMessageDialog(null,"Debe agregar almenos una pelicula");
}
/**
* @return the mesCierre
*/
public String getMesCierre() {
return mesCierre;
}
PGINA 134
/**
* @param mesCierre the mesCierre to set
*/
public void setMesCierre(String mesCierre) {
this.mesCierre = mesCierre;
}
Clase cierreSemanal
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
PGINA 135
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
//***CONSTRUCTOR***
public cierreSemanal(){
setVisible(true);
setLocation(100, 10);
setSize(950,350);//El tamao de la ventana
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
c1 = new GregorianCalendar();
dia=c1.get(Calendar.DAY_OF_MONTH);
mes=c1.get(Calendar.MONTH);
anio=c1.get(Calendar.YEAR);
semana=c1.get(Calendar.WEEK_OF_MONTH);
int diaSemana=c1.get(Calendar.DAY_OF_WEEK);
JL_mes1.setText((""+(mes+1)));
JP_semana1.add(JL_mes1);
JP_semana1.add(new JLabel("/"));
JP_semana1.add(JL_anio1);
PGINA 137
JP_semana1.add(JSP_barraDeslizadora);
JP_semana2.add(JSP_barraDeslizadora2);
JP_botonesSemana1.add(info1);
JP_botonesSemana1.add(JP_idicaSemana1);
JP_info2.add(JL_alquiler2);
JP_info2.add(JTF_alquiler2);
JP_info2.add(JL_total2);
JP_info2.add(JTF_total2);
JP_botonesSemana2.add(JP_botones2);
JP_botonesSemana2.add(JP_info2);
JP_botonesSemana2.add(JP_idicaSemana2);
JP_semana1.setBackground(Color.MAGENTA);
JP_semana2.setBackground(Color.BLUE);
JP_botonesSemana1.setBackground(Color.black);
JP_principal.add(JP_semana1);
PGINA 141
JP_principal.add(JP_botonesSemana1);
JP_principal.add(JP_semana2);
JP_principal.add(JP_botonesSemana2);
//Mouse adapter para conocer la celda el dato de la celda donde se hace clik
semana1.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
int fila = semana1.rowAtPoint(e.getPoint());
int columna = semana1.columnAtPoint(e.getPoint());
if ((fila > -1) && (columna > -1)){
System.out.println("Debe
clickeo"+DTM_semana1.getValueAt(fila,columna));
imprimir
donde
fechaSelecion1=obj.toString();
}
catch(NullPointerException npe){
System.out.println("selecicon en lugar invalido");
}//fin del catch
}//fin del if
DeterminaAlquiler(Integer.parseInt(fechaSelecion1),
1,Integer.parseInt(JL_anio1.getText()),1);
Integer.parseInt(JL_mes1.getText())-
PGINA 142
});
semana2.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e){
int fila = semana2.rowAtPoint(e.getPoint());
int columna = semana2.columnAtPoint(e.getPoint());
if ((fila > -1) && (columna > -1))
System.out.println((DTM_semana2.getValueAt(fila,columna )));
Object obj = DTM_semana2.getValueAt(fila, columna);
try{
fechaSelecion2=obj.toString();
Integer.parseInt(JL_mes2.getText())-
}
});
this.add(JP_principal);
}//***FIN CONSTRUCTOR
PGINA 143
if(mes== 1||mes== 3||mes==5 ||mes == 7|| mes ==8|| mes ==10||mes == 12){
int dia=dia2,semana=semana2,diaSemana=diaSemana2;
if(diaSemana==1)
diaSemana=6;
else{
diaSemana=diaSemana-2;
}//fin del else
while(dia<32){
while(diaSemana<7&&dia<32){
matriz[semana-1][diaSemana]=""+dia;
diaSemana++;
dia++;
diaSemana=0;
semana++;
if(diaSemana==1)
diaSemana=6;
else{
diaSemana=diaSemana-2;
}//fin del else
diaSemana--;
while(dia>0){
while(diaSemana>-1&&dia>0){
matriz[semana-1][diaSemana]=""+dia;
diaSemana--;
dia--;
diaSemana=6;
semana--;
if(diaSemana==1)
diaSemana=6;
else{
diaSemana=diaSemana-2;
PGINA 145
while(dia<31){
while(diaSemana<7&&dia<31){
matriz[semana-1][diaSemana]=""+dia;
diaSemana++;
dia++;
diaSemana=0;
semana++;
while(dia>0){
while(diaSemana>-1&&dia>0){
matriz[semana-1][diaSemana]=""+dia;
diaSemana--;
PGINA 146
dia--;
diaSemana=6;
semana--;
else{
int dia=dia2,semana=semana2,diaSemana=diaSemana2;
if(diaSemana==1)
diaSemana=6;
else{
diaSemana=diaSemana-2;
}//fin del else
while(dia<29){
while(diaSemana<7&&dia<29){
matriz[semana-1][diaSemana]=""+dia;
diaSemana++;
dia++;
PGINA 147
diaSemana=0;
semana++;
while(dia>0){
while(diaSemana>-1&&dia>0){
matriz[semana-1][diaSemana]=""+dia;
diaSemana--;
dia--;
diaSemana=6;
semana--;
return matriz ;
PGINA 148
//Botones semana 1
if(e.getSource()==JB_atras){
mesCambia++;
c2.add(Calendar.MONTH,-mesCambia);
System.out.println("fecha modificacion"+c2.getTime());
int dia=c2.get(Calendar.DAY_OF_MONTH);
System.out.println(dia);
int mes=c2.get(Calendar.MONTH);
System.out.println("Mese deberia ser 9"+ mes);
int anio=c2.get(Calendar.YEAR);
int semana=c2.get(Calendar.WEEK_OF_MONTH);
int diaSemana=c2.get(Calendar.DAY_OF_WEEK);
String mesanterior[][]=ObtenerTabla(dia, mes+1, anio, semana, diaSemana);
JL_mes1.setText((mes+1)+"");
JL_anio1.setText(""+anio);
DTM_semana1.setDataVector(mesanterior, encabezados);
semana1.setModel(DTM_semana1);
JB_adelante.setEnabled(true);
PGINA 149
if(e.getSource()==JB_adelante){
mesCambia--;
c2.add(Calendar.MONTH,-mesCambia);
System.out.println("fecha modificacion"+c2.getTime());
int dia=c2.get(Calendar.DAY_OF_MONTH);
System.out.println(dia);
int mes=c2.get(Calendar.MONTH);
System.out.println("Mese deberia ser 9"+ mes);
int anio=c2.get(Calendar.YEAR);
int semana=c2.get(Calendar.WEEK_OF_MONTH);
int diaSemana=c2.get(Calendar.DAY_OF_WEEK);
String mesanterior[][]=ObtenerTabla(dia, mes+1, anio, semana, diaSemana);
JL_mes1.setText((mes+1)+"");
JL_anio1.setText(""+anio);
DTM_semana1.setDataVector(mesanterior, encabezados);
semana1.setModel(DTM_semana1);
if(mesCambia==0){
JB_adelante.setEnabled(false);
}
//Botones semana 2
if(e.getSource()==JB_atras2){
mesCambia2++;
c3.add(Calendar.MONTH,-mesCambia2);
System.out.println("fecha modificacion"+c3.getTime());
PGINA 150
int dia=c3.get(Calendar.DAY_OF_MONTH);
System.out.println(dia);
int mes=c3.get(Calendar.MONTH);
System.out.println("Mese deberia ser 9"+ mes);
int anio=c3.get(Calendar.YEAR);
int semana=c3.get(Calendar.WEEK_OF_MONTH);
int diaSemana=c3.get(Calendar.DAY_OF_WEEK);
String mesanterior[][]=ObtenerTabla(dia, mes+1, anio, semana, diaSemana);
JL_mes2.setText((mes+1)+"");
JL_anio2.setText(""+anio);
DTM_semana2.setDataVector(mesanterior, encabezados);
semana2.setModel(DTM_semana2);
JB_adelante2.setEnabled(true);
if(e.getSource()==JB_adelante2){
mesCambia2--;
c3.add(Calendar.MONTH,-mesCambia2);
System.out.println("fecha modificacion"+c3.getTime());
int dia=c3.get(Calendar.DAY_OF_MONTH);
System.out.println(dia);
int mes=c3.get(Calendar.MONTH);
System.out.println("Mese deberia ser 9"+ mes);
int anio=c3.get(Calendar.YEAR);
int semana=c3.get(Calendar.WEEK_OF_MONTH);
int diaSemana=c3.get(Calendar.DAY_OF_WEEK);
String mesanterior[][]=ObtenerTabla(dia, mes+1, anio, semana, diaSemana);
PGINA 151
JL_mes2.setText((mes+1)+"");
JL_anio2.setText(""+anio);
DTM_semana2.setDataVector(mesanterior, encabezados);
semana2.setModel(DTM_semana2);
if(mesCambia2==0){
JB_adelante2.setEnabled(false);
}
String
fechaActual=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
String fecha2="";
String fecha3="",fecha4="",fecha5="",fecha6="",fecha7="";
System.out.println("22-11-2010"+fechaActual);
for(int t=1;t<7;t++){
ce.add(Calendar.DATE, 1);
if(t==1)
fecha2=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
if(t==2)
fecha3=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
if(t==3)
PGINA 152
fecha4=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
if(t==4)
fecha5=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
if(t==5)
fecha6=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
if(t==6)
fecha7=ce.get(Calendar.DAY_OF_MONTH)+"-"+(ce.get(Calendar.MONTH)+1)+""+ce.get(Calendar.YEAR);
System.out.println(fecha2+"\n"+fecha3+"\n"+fecha4+"\n"+fecha5+"\n"+fecha6+"\n"+fecha7);
int totalalquiler=0,totalDinero=0;
try{
PGINA 153
while(registroActual!=null){
StringTokenizer st = new StringTokenizer(registroActual, ";");
String id="", idClient="", idPelicula="", FechaAlquiler="", FechaEntrega="";
System.out.println("linesd el archivo"+registroActual);
int contador=1;
int pago=0;
int ID=1, IDClIENTE=2, IDPELICULA=3, FECHAALQUILER=4, FECHAENTREGA=5,
PAGO=6;
while(st.hasMoreTokens()==true){
if(contador==ID)
id=st.nextToken();
else if(contador == IDClIENTE)
idClient=st.nextToken();
else if(contador == IDPELICULA)
idPelicula=(st.nextToken());
else if (contador == FECHAALQUILER)
FechaAlquiler=st.nextToken();
else if (contador == FECHAENTREGA)
FechaEntrega=st.nextToken();
else if (contador == PAGO) {
pago=Integer.parseInt(st.nextToken());
break;
}//fin contador6
contador++;
System.out.println(contador);
PGINA 154
}//fin while
if(fechaActual.equalsIgnoreCase(FechaAlquiler)||fecha2.equalsIgnoreCase(FechaAlquiler)||fecha3
.equalsIgnoreCase(FechaAlquiler)||fecha4.equalsIgnoreCase(FechaAlquiler)||fecha5.equalsIgnore
Case(FechaAlquiler)||fecha6.equalsIgnoreCase(FechaAlquiler)||fecha7.equalsIgnoreCase(FechaA
lquiler)){
totalalquiler++;
totalDinero+=(pago);
}//fin del if
registroActual=br.readLine();
}//fin while
Clase cierreMensual
import java.awt.GridLayout;
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.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
//global
JPanel JP_principal;
JButton JB_generarInforme;
JComboBox JCB_meses;
PGINA 156
String
meses[]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Setiembre","Octubre",
"Noviembre","Diciembre"};
int totalIngresosPorMes=0;
int contadorDeRegistros;
//***CONSTRUCTOR***
public cierreMensual(){
PGINA 157
JP_1.add(JL_informe);
JP_2.add(JL_Elija);
JP_3.add(JCB_meses);
JP_4.add(JB_generarInforme);
JP_principal.add(JP_1);
JP_principal.add(JP_2);
JP_principal.add(JP_3);
JP_principal.add(JP_4);
JB_generarInforme.addActionListener(new ActionListener() {
this.add(JP_principal);
}//***FIN CONSTRUCTOR
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
try{
BufferedReader entradaDeArchivo = getBufferedReader();
do{
// while(entradaDeArchivo!=null){
IDCLIENTE=3,
IDPELICULA=4,
FECHASALE=5,
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
PGINA 160
}//fin if
else
registroActual= entradaDeArchivo.readLine();
//}//fin while
}while(entradaDeArchivo!=null);
}//fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, fnfe);
}//fin catch
catch(IOException ioE){
JOptionPane.showMessageDialog(null, ioE);
}//fin catch
catch(NullPointerException npe){
}
escribeTotalRegistros();//llamada al metodo para que determine la cantidad alojada en la
ultima linea del archivo temp_contadorRegistros
return contadorDeRegistros;
}//fin buscarPelicula
//mtodo que retorna una matriz con los datos correspondientes a un determinado mes...
int fila = 0; //variable que guarda la cantidad de registros encontrados en el mes eligido
try{
BufferedReader entradaDeArchivo = getBufferedReader();
PGINA 161
while(entradaDeArchivo!=null){
IDCLIENTE=3,
IDPELICULA=4,
FECHASALE=5,
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
}//fin if
else if (contador==IDALQUILER)
idalquiler=st.nextToken();
else if(contador==IDCLIENTE)
idcliente=st.nextToken();
else if(contador==IDPELICULA)
idpelicula=st.nextToken();
else if(contador==FECHASALE)
fechasale=st.nextToken();
else if(contador==FECHAENTREGA)
fechaentrega=st.nextToken();
PGINA 162
else if(contador==PAGO)
pago=st.nextToken();
contador++;
}//fin while
if(identificador.equalsIgnoreCase(mes)){
//si el mes es encontrado, la matrix se llena con los datos correspondientes a ese mes
datosMovimientos[fila][0]= mes;
datosMovimientos[fila][1]= idalquiler;
datosMovimientos[fila][2]= idcliente;
datosMovimientos[fila][3]= idpelicula;
datosMovimientos[fila][4]= fechasale;
datosMovimientos[fila][5]= fechaentrega;
datosMovimientos[fila][6]= pago;
//Se suman todas las cantidades que pasen por la celda de pago, para obtener la
cantidad total de ingresos por mes...
totalIngresosPorMes+=Integer.parseInt(datosMovimientos[fila][6]);
fila++;
}//fin if
else
registroActual= entradaDeArchivo.readLine();
}//fin while
}//fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, fnfe);
}//fin catch
catch(IOException ioE){
PGINA 163
JOptionPane.showMessageDialog(null, ioE);
}//fin catch
catch(NullPointerException npe){
}//fin catch
return datosMovimientos;
}//fin crearMatrix
try{
File f1;
f1 = new File("Mes_Consulta.txt");
FileOutputStream fos;
fos=new FileOutputStream(f1,true);
PrintStream ps;
ps = new PrintStream(fos);
ps.println(getMes());
}//fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null,fnfe);
}//fin catch
}//fin escribeArchivo
File f4;
PGINA 164
}//fin escribeTotalRegistros
try{
File f5;
f5=new File("temp_totalIngresos.txt");
FileOutputStream fos5;
fos5 = new FileOutputStream(f5);
PrintStream ps5;
ps5= new PrintStream(fos5);
String totalIngresos;
totalIngresos = String.valueOf(totalIngresosPorMes);
ps5.println(totalIngresos);
}//fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, fnfe);
}//fin catch
PGINA 165
}//fin escribeTotalIngresos
/**
* @return the Mes
*/
public String getMes() {
return Mes;
}
/**
* @param Mes the Mes to set
*/
public void setMes(String Mes) {
this.Mes = Mes;
}
}//fin clase
Clase diaAlquilerAltoBajo
import java.awt.GridLayout;
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.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
PGINA 166
import java.util.StringTokenizer;
import javax.swing.BoxLayout;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
//global
JPanel JP_principal, JP_elijaMES, JP_comboMeses, JP_etiquetasALto_Bajo, JP_camposTexto;
JTextField JTF_bajo, JTF_alto, JTF_ingresosAlto, JTF_ingresoBajo;
JComboBox JCB_meses;
String mesElegido="false";//variable que lleva el mes al que se le quiere consultar el dia de
alquiler mas alto y bajo
String
meses[]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Setiembre","Octubre",
"Noviembre","Diciembre"};
int contadorDeRegistros;
int vecMes[]= new int [32];//vector equivalente con la cantidad de celdas equivalentes a un mes
del calendario.
//*****CONSTRUCTOR******
public diaAlquilerAltoBajo(){
JPanel();
JPanel
JP_campoAlto=
new
JPanel();
JPanel
JP_etiquetasALto_Bajo.add(JP_etiquetaBajo);
JP_etiquetaAlto.add(JL_alto);
JP_etiquetaBajo.add(JL_bajo);
JP_camposTexto.add(JP_campoAlto);
JP_camposTexto.add(JP_campoBajo);
JP_campoAlto.add(JTF_alto);
JP_campoBajo.add(JTF_bajo);
JP_diaDel.add(JL_diaDel);
JP_JLingresos.add(JL_ingresos);
JP_datosIngresos.add(JP_datosIngresosAltos);
JP_datosIngresos.add(JP_datosIngresosBajos);
JP_datosIngresosAltos.add(JTF_ingresosAlto);
JP_datosIngresosBajos.add(JTF_ingresoBajo);
//(pegar paneles al panel principal)
JP_principal.add(JP_elijaMES);
JP_principal.add(JP_comboMeses);
JP_principal.add(JP_diaDel);
JP_principal.add(JP_etiquetasALto_Bajo);
JP_principal.add(JP_camposTexto);
JP_principal.add(JP_JLingresos);
JP_principal.add(JP_datosIngresos);
this.add(JP_principal);
JCB_meses.addActionListener(new ActionListener() {
//en caso de que no haya informacin que ensear se establecer XXX como que no existe
informacin--JTF_alto.setText("XXX");
JTF_bajo.setText("XXX");
JTF_ingresoBajo.setText("0");
JTF_ingresosAlto.setText("0");
}//***FIN CONSTRUCTOR
}//fin establecerAlto_bajo();
try{
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
try{
BufferedReader entradaDeArchivo = getBufferedReader();
do{
// while(entradaDeArchivo!=null){
PGINA 171
IDCLIENTE=3,
IDPELICULA=4,
FECHASALE=5,
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
contadorDeRegistros++;
}//fin if
else
registroActual= entradaDeArchivo.readLine();
//}//fin while
}while(entradaDeArchivo!=null);
}//fin try
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, fnfe);
}//fin catch
catch(IOException ioE){
JOptionPane.showMessageDialog(null, ioE);
}//fin catch
catch(NullPointerException npe){
}
return contadorDeRegistros;
}//fin buscarPelicula
//mtodo que retorna una matriz con los datos correspondientes a un determinado mes...
Arrays.fill(vecMes, 0);
int sumaDia=0;
int fila = 0; //variable que guarda la cantidad de registros encontrados en el mes eligido
PGINA 173
try{
BufferedReader entradaDeArchivo = getBufferedReader();
while(entradaDeArchivo!=null){
IDCLIENTE=3,
IDPELICULA=4,
FECHASALE=5,
int contador=1; //cuando contador est en algn valor de los anteriores, se guarda ese
String en la variable correspondiente
}//fin if
else if (contador==IDALQUILER)
idalquiler=st.nextToken();
else if(contador==IDCLIENTE)
idcliente=st.nextToken();
else if(contador==IDPELICULA)
idpelicula=st.nextToken();
PGINA 174
else if(contador==FECHASALE)
fechasale=st.nextToken();
else if(contador==FECHAENTREGA)
fechaentrega=st.nextToken();
else if(contador==PAGO)
pago=st.nextToken();
contador++;
}//fin while
if(identificador.equalsIgnoreCase(mes)){
//si el mes es encontrado, la matrix se llena con los datos correspondientes a ese mes
datosMovimientos[fila][0]= mes;
datosMovimientos[fila][1]= idalquiler;
datosMovimientos[fila][2]= idcliente;
datosMovimientos[fila][3]= idpelicula;
datosMovimientos[fila][4]= fechasale;
datosMovimientos[fila][5]= fechaentrega;
datosMovimientos[fila][6]= pago;
fila++;
estableceAltoBajo(guardaEnVector(determinaDia(fechasale), pago));
}//fin if
else
registroActual= entradaDeArchivo.readLine();
}//fin while
}//fin try
PGINA 175
catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, fnfe);
}//fin catch
catch(IOException ioE){
JOptionPane.showMessageDialog(null, ioE);
}//fin catch
catch(NullPointerException npe){
}//fin catch
catch(ArrayIndexOutOfBoundsException AIOBE){
JOptionPane.showMessageDialog(null, AIOBE);
}//fin catch
return datosMovimientos;
}//fin crearMatrix
int cont=1;
else if(cont==AO)
ao=st.nextToken();
cont++;
}//fin while
return dia;
}//fin determinadia
int menor=0;
int mayor=vector[1];
int posicionAlto=0;
int posicionBajo=0;
//se establece la cantidad que debe guardar la variable menor
for(int m=0; m<vector.length;m++){
if(vector[m]!=0)
menor=vector[m];
posicionBajo=m;
if(menor>0)//cuando menos es mayor que cero sale del ciclo for
break;
PGINA 177
} //fin for
}//fin for
//se establecen los datos correspondientes a los campos de texto...
JTF_ingresosAlto.setText(" "+mayor);
JTF_alto.setText(""+posicionAlto);
JTF_ingresoBajo.setText(" "+menor);
JTF_bajo.setText(""+posicionBajo);
}//fin establecerAltyoBajo()
}//fin clase
Clase panelImagen
import java.awt.Graphics;
PGINA 178
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
icono=new ImageIcon(ubicacion);
fondo=icono.getImage();
this.setSize(400,400);
}// fin del constructor
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(0, 0, 400, 400);
g.drawImage(fondo, 0,0,null);
}//fin paintComponent
}//fin class panelImagen
Clase pintaImagen
/*Clase PintaImage.... crea un border en el cual incluye
*la imagen cargada en el BuferedImage
* para aplicarla a el JDesktop Pane...
**/
PGINA 179
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.border.Border;
public pintaImagen() {
try{
image = ImageIO.read(archi);
}
catch(Exception e){
System.out.println("No se encontro la imagen de fondo \n "+e);
}//
}//constructor
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
PGINA 180
int x0 = x+ (width-image.getWidth())/2;
int y0 = y+ (height-image.getHeight())/2;
g.drawImage(image,x0,y0,null); }
Clase acercaDe
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
PGINA 181
//**CONSTRUCTOR**
public AcercaDe(){
super("Acerca de", false, true, false, true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);//cuando se cierre sige funcionando el
resto de la aplicacin
setVisible(true);//la ventana ser visible para el usuario
setSize(700,700);//El tamao de la ventana
setLocation(100,8);
setResizable(true);
JP_principal=new JPanel();
JP_principal.setLayout(new BoxLayout(JP_principal,BoxLayout.Y_AXIS));
JP_imagen = new panelImagen("aplicacion.png");
JP_informacionSistema = new JPanel();
JP_sobreLaaplicacion=new JPanel();
JLabel("UNIVERSIDAD
JUAREZ
AUTONOMA
DE
String salida=usuario+"\n"+pc+"\n"+sistema+"\n"+procesador+"\n"+java;
JTA_info.setText(salida);
JTA_info.setFont(new Font("Courier", Font.BOLD, 14));
JP_informacionSistema.add(JTA_info);
JP_principal.add(JP_imagen);
JP_principal.add(JP_sobreLaaplicacion);
JP_principal.add(JP_informacionSistema);
JP_principal.add(JB_aceptar);// se pega el boton aceptar
PGINA 183
this.add(JP_principal);
this.setBackground(Color.cyan);
}//fin constructor
dispose();
PGINA 184