Borra y modificar el nombre y el adeudo

Mike
11 de Junio del 2006
Por Favor ayudenme

Necesito corrergir este programa, no puedo lograr que haga bien las bajas y modificaciones.
Gracias de antemano.

import java.io.*;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.io.Serializable;

class DameTuSonrisa extends JFrame implements ActionListener
{
public JButton agregar,borrar, modificar,INICIOS;
public JTextField mat, nom, adeu,archivoss;
public JTextArea area;
public JLabel matricula, nombre, adeudo;
public JMenu menu, inicio;
RandomAccessFile Archivo;

public DameTuSonrisa()
{
super("Trabajo Final");

Container contenedor = getContentPane();
contenedor.setLayout(new FlowLayout());

agregar=new JButton("Dar de Alta");
agregar.setEnabled(false);
borrar= new JButton("Dar de Baja");
borrar.setEnabled(false);
modificar=new JButton("Hacer Cambios");
modificar.setEnabled(false);
INICIOS=new JButton("Correr el Archivo");
INICIOS.setEnabled(false);

archivoss=new JTextField(45);
contenedor.add(archivoss);
archivoss.setEditable(true);


menu=new JMenu("opciones");
menu.setMnemonic('O');

JMenuItem abrir=new JMenuItem("Abrir Archivo");
abrir.setMnemonic('A');
menu.add(abrir);
abrir.addActionListener(this);

JMenuBar barra=new JMenuBar();
setJMenuBar(barra);
barra.add(menu);

JMenuItem inicio=new JMenuItem("Crear un Archivo");
inicio.setMnemonic('C');
menu.add(inicio);
inicio.addActionListener(this);

barra.add(menu);


matricula=new JLabel("Matricula");
contenedor.add(matricula);
mat=new JTextField(45);
contenedor.add(mat);
mat.setEditable(false); //////
nombre=new JLabel("Nombre");
contenedor.add(nombre);
nom=new JTextField(45);
contenedor.add(nom);
nom.setEditable(false); /////
adeudo=new JLabel("Adeudo");
contenedor.add(adeudo);
adeu=new JTextField(45);
contenedor.add(adeu);
adeu.setEditable(false); ////////

contenedor.add(agregar);
contenedor.add(borrar);
contenedor.add(modificar);
contenedor.add(INICIOS);

area=new JTextArea(50,50);
contenedor.add(area);

agregar.addActionListener(this);
borrar.addActionListener(this);
modificar.addActionListener(this);
abrir.addActionListener(this);
INICIOS.addActionListener(this);

setSize(500,600);
setVisible(true);
}

public void actionPerformed(ActionEvent evento)
{
String accion,a,b,c;
int x,y,z;

accion=evento.getActionCommand();

if(accion.equals("Dar de Alta"))
{
System.out.println("Estamos en agregar ");
agregar();
}
else
//////
if(accion.equals("Crear un Archivo"))
{
System.out.println("Estamos en crear ");
crearArchivo();////YA

}
else
/////////
if(accion.equals("Dar de Baja"))
{
System.out.println("Estamos en Baja ");

borrar();
/* try
{
String nombrearchivo1="";
File CA=new File(archivoss.getText());
boolean AWW =CA.createNewFile();
if(AWW)
{
area.setText(" ");
area.append("ya creaste el archivo"+nombrearchivo1);
}
else
{
area.setText(" ");
area.append("ya creaste el archivo"+nombrearchivo1+" no se puede crear");
}
}
catch(Exception k)
{

}*/
}
else
/*borrar(); */
if(accion.equals("Hacer Cambios"))
{
System.out.println("Estamos en modificar ");
modificar();
}
else
if(accion.equals("Abrir Archivo"))
{
System.out.println("Estamos en abrir ");
abrirArchivo();///YA
apertura();
}
else
{
}
if(accion.equals("Correr el Archivo"))
{
System.out.println("Estamos en correr ");
///////LLAMAR EL METODO
/*nombrearchivo.seek(0);*/

}
else
{
}
}//actionPerformed(ActionEvent evento)
public void apertura()
{
/*int c=0;


nombrearchivo.seek(0);
leer(nombrearchivo,c);*/

}
void abrirArchivo()
{
System.out.println("abrir");
String nombrearchivo;

//FileDialog fd=new FileDialog(new Frame(),"hola",FileDialog.LOAD);
//fd.setVisible(true);
//nombrearchivo=fd.getFile();
JFileChooser SelectorArchivo=new JFileChooser();
SelectorArchivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
int resultado=SelectorArchivo.showSaveDialog(null);
if(resultado==JFileChooser.CANCEL_OPTION)
return;
File nombreArchivo=SelectorArchivo.getSelectedFile();
if(nombreArchivo==null||nombreArchivo.getName().equals(""))
JOptionPane.showMessageDialog(null,"NOMBRE DE ARCHIVO INCORRECTO","NOMBRE DE ARCHIVO INCORRECTO", JOptionPane.ERROR_MESSAGE);

else
{
try
{


Archivo=new RandomAccessFile(nombreArchivo,"rw");
System.out.println("enable");
}// try
catch (IOException excepciones)
{
JOptionPane.showMessageDialog(null,"ERROR AL PROCESAR EL ARCHIVO","ERROR AL PROCESAR EL ARCHIVO",JOptionPane.ERROR_MESSAGE);
System.exit(1);
} // catch
}
}// public static abrirArchivo()
public void crearArchivo()
{
try
{
String nombrearchivo1="";
nombrearchivo1=archivoss.getText();
System.out.println("Vamos a crear "+nombrearchivo1);
File CA=new File(nombrearchivo1);
boolean AWW =CA.createNewFile();
System.out.println("creatNewFile() "+AWW);
if(AWW)
{
area.setText(" ");
area.append("ya creaste el archivo"+nombrearchivo1);
}
else
{
area.setText(" ");
area.append("ya creaste el archivo"+nombrearchivo1+" no se puede crear");
}
Archivo=new RandomAccessFile(CA,"rw");
RegistroAlumnoFile objetoRAF = new RegistroAlumnoFile(0,"Archivo Inicial",0);
objetoRAF.escribir(Archivo,0);

mat.setEditable(true);
nom.setEditable(true);
adeu.setEditable(true);
agregar.setEnabled(true);
borrar.setEnabled(true);
modificar.setEnabled(true);

}
catch(Exception k)
{

}
}
public void agregar()
{

System.out.println("ey agregar");
String a,b,c;

int contador=0;

System.out.println("ya vamos");


RegistroAlumnoFile objeto=new RegistroAlumnoFile();
objeto.leer(Archivo,0);
contador=objeto.getMatricula();
System.out.println("Contador es "+contador);


a=mat.getText();
b=nom.getText();
c=adeu.getText();

int x,i;
double z;

x=Integer.parseInt(a);
z=Double.parseDouble(c);

System.out.println("ejercito");

for(i=1;i<=contador;i++)
{
System.out.println("ya orale");

objeto.leer(Archivo,i);

if(objeto.getMatricula()==x)
{
System.out.println("hollllllaaaaaaaa");
JOptionPane.showMessageDialog(null,"Incorrecto ","No puedes Escribir ya existe esa matricula", JOptionPane.ERROR_MESSAGE);
return;
}
} // for
System.out.println("ya vamos");
contador++;
objeto.leer(Archivo,0);// se lee el contador en la posicion cero
objeto.setMatricula(contador); //se le agrega la informacion al contador en la ultima posicion
objeto.escribir(Archivo,0); // toma el metodo escribir en la posicion cero del contador

objeto.setMatricula(x);//se le da matricula lo que se escribio
objeto.setNombre(b);//se le da nombre lo que se escribio
objeto.setAdeudo(z);//se le da adeudo lo que se escribio
objeto.escribir(Archivo,contador);//todo lo de escribir lo pone para que el area lo reciba
area.append(x+"t t "+b+" t t"+z+"n");
mat.setText("");
nom.setText("");
adeu.setText("");
/* try
{

/* RegistroAlumnoFile objeto=new RegistroAlumnoFile();
objeto.escribir(Archivo,0);*/
/* }
catch(NumberFormatException gt)
{
JOptionPane.showMessageDialog(null,"Por fin corre ","Error en el Archivo", JOptionPane.ERROR_MESSAGE);

}*/
mat.setEnabled(true);
nom.setEnabled(true);
adeu.setEnabled(true);



// if
}// metodo agregar
public class RegistroAlumno implements Serializable
{
private int matricula;
private String nombre;
private double adeudo;

public RegistroAlumno()
{
this(0,"",0.0);
}
public RegistroAlumno(int matr, String nombre, double importe)
{
setMatricula(matr);
setNombre(nombre);
setAdeudo(importe);
System.out.println("Inicializar objeto "+matricula+nombre+adeudo);
}
public void setMatricula(int matr)
{
matricula=matr;
}
public int getMatricula()
{
return matricula;
}
public void setNombre(String nombre)
{
this.nombre=nombre;
}
public String getNombre()
{
return nombre;
}
public void setAdeudo(double importe)
{
adeudo=importe;
}
public double getAdeudo()
{
return adeudo;
}
} // fin

public void borrar()
{
int contador=0;

RegistroAlumnoFile objeto=new RegistroAlumnoFile();
objeto.leer(Archivo,0);
objeto.escribir(Archivo,0);
contador=objeto.getMatricula();

System.out.println("ya vamos a ganar");

String a,b,c;

a=mat.getText();
b=nom.getText();
c=adeu.getText();

int x,i;
double z;

x=Integer.parseInt(a);
z=Double.parseDouble(c);

System.out.println("casa");

for(i=1;i<=contador;i--)
{
System.out.println("casota");

objeto.leer(Archivo,i);

if(objeto.getMatricula()==x)
{


System.out.println("m2");

objeto.leer(Archivo,0);// se lee el contador en la posicion cero
objeto.setMatricula(contador); //se le agrega la informacion al contador en la ultima posicion
objeto.escribir(Archivo,0); // toma el metodo escribir en la posicion cero del contador

contador=contador-1;

System.out.println("ya casi");

objeto.setMatricula(x);//se le da matricula lo que se escribio
objeto.setNombre(b);//se le da nombre lo que se escribio
objeto.setAdeudo(z);//se le da adeudo lo que se escribio
objeto.escribir(Archivo,contador);//todo lo de escribir lo pone para que el area lo reciba
area.append(x+"t t "+b+" t t"+z+"n");
mat.setText("");
nom.setText("");
adeu.setText("");
}
}


} // metodo borrar
public void modificar()
{

int contador=0;

RegistroAlumnoFile objeto=new RegistroAlumnoFile();
objeto.leer(Archivo,0);
contador=objeto.getMatricula();

System.out.println("ya vamos a ganar");

String a,b,c;

a=mat.getText();
b=nom.getText();
c=adeu.getText();

int x,i;
double z;

x=Integer.parseInt(a);
z=Double.parseDouble(c);

System.out.println("casa");

for(i=1;i<=contador;i++)
{
System.out.println("casota");

objeto.leer(Archivo,i);

if(objeto.getMatricula()==x)
{
contador=contador;

System.out.println("m2");

objeto.leer(Archivo,0);// se lee el contador en la posicion cero
objeto.setMatricula(contador); //se le agrega la informacion al contador en la ultima posicion
objeto.escribir(Archivo,0); // toma el metodo escribir en la posicion cero del contador

objeto.setMatricula(x);//se le da matricula lo que se escribio
objeto.setNombre(b);//se le da nombre lo que se escribio
objeto.setAdeudo(z);//se le da adeudo lo que se escribio
objeto.escribir(Archivo,contador);//todo lo de escribir lo pone para que el area lo reciba
area.append(x+"t t "+b+" t t"+z+"n");
mat.setText("");
nom.setText("");
adeu.setText("");
}
}

}// metodo modificar

public static void main(String[] lws)throws IOException
{
DameTuSonrisa aplicacion= new DameTuSonrisa();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} // MAIN PRINCIPAL
} /// lo primero

import java.io.Serializable;

public class RegistroAlumnoz implements Serializable
{
private int matricula;
private String nombre;
private double adeudo;

public RegistroAlumnoz()
{
this(0,"",0.0);
} // fin
public RegistroAlumnoz(int matricula, String nombre, double importe)
{
setMatricula(matricula);
setNombre(nombre);
setAdeudo(importe);
} //fin
public void setMatricula(int matr)
{
matricula=matr;
}
public int getMatricula()
{
return matricula;
}
public void setNombre(String nombre)
{
this.nombre=nombre;
}
public String getNombre()
{
return nombre;
}
public void setAdeudo(double importe)
{
adeudo=importe;
}
public double getAdeudo()
{
return adeudo;
}
}


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.JOptionPane;
import java.io.Serializable;



public class RegistroAlumnoFile extends RegistroAlumnoz
{
public static final int LONGITUD=72;

public RegistroAlumnoFile()
{
this(0,"",0.0);

} // public RegistroAlumnoFile()

public RegistroAlumnoFile (int matricula, String nombre,double adeudo)
{
super(matricula,nombre, adeudo);

} // public RegistroAlumnoFile (int matricula, String nombre,double adeudo)

public void leer(RandomAccessFile archivo, int nRegistro) // throws IOException
{
try
{
archivo.seek(nRegistro*LONGITUD);
setMatricula(archivo.readInt());
setNombre(leerNombre(archivo));
setAdeudo(archivo.readDouble());

} //try
catch(IOException x)
{
JOptionPane.showMessageDialog(null,"Error leer un registro","Error en el archivo",JOptionPane.ERROR_MESSAGE);

} // catch(IOException x)

} // public void leer(RandomAccessFile archivo, int nRegistro) // throws IOException
private String leerNombre(RandomAccessFile archivo) // throws IOException
{
char nombre[]=new char[30], temp;

try
{
for(int matricula=0;matricula<nombre.length;matricula++)
{
temp=archivo.readChar();
nombre[matricula]=temp;
}
} // try
catch(IOException x)
{
JOptionPane.showMessageDialog(null,"Error leer un registro","Error en el archivo",JOptionPane.ERROR_MESSAGE);
}// catch
return new String(nombre).replace('',' ');
} // private String leerNombre(RamdomAccessFile archivo) // throws IOException

public void escribir(RandomAccessFile archivo, int nRegistro) // throws IOException
{
try
{
archivo.seek(nRegistro*LONGITUD);
archivo.writeInt(getMatricula());
escribirNombre(archivo,getNombre());
archivo.writeDouble(getAdeudo());
} //try
catch(IOException x)
{
JOptionPane.showMessageDialog(null,"Error ESCRIBIR un registro","Error en el archivo",JOptionPane.ERROR_MESSAGE);
}// CATCH

} // public void escribir(RamdomAccessFile archivo, int nRegistro) // throws IOException

private void escribirNombre(RandomAccessFile archivo, String nombre) // throws IOException
{
StringBuffer buffer=null;

if(nombre!=null)
buffer=new StringBuffer(nombre);
else
buffer=new StringBuffer(30);
buffer.setLength(30);

try
{
archivo.writeChars(buffer.toString());
} // try
catch(IOException x)
{
JOptionPane.showMessageDialog(null,"Error ESCRIBIR un registro","Error en el archivo",JOptionPane.ERROR_MESSAGE);
}

} // private void escribirNombre(RamdomAccessFile archivo), String nombre) // throws IOException

} // public class RegistroAlumnoFile extends RegistroAlumno

jengaro
11 de Junio del 2006
haber compadre...

en primera cuando lo corro me sale una ventana donde solo tiuenes un menu bar con dos menu uno q dice abrir y otro crear archivo.

unos label y textfield donde estan ciertas opcions, no mevoy aponer a moverle al codigo si no se bien bien q es lo q hace, estas manejando un archivo, en si q es un sitema de inventarios o un editor de texto, si tiene una idea de donde esta el erro entonces se un poco mas claro zaz

ya lo compile y lo corri, esas son las cosas q te digo q vi cuando le doy en abiri me saca un meno para escojer menus, si pero creo q por ahi tienes errores en tu logica :|

me pregunta es lo hisicte tu ?? si lo hiciste mas o menos dime lo q tiene q hacer y veremos en donde te puedo ayudar y por q no guarda tus modificaciones mas bien debe de haber por ahi una funcion q se llame modificar y eliminar o bajas, para sobre esa trabajar

espero ams detalles

Mike
11 de Junio del 2006
Mira, primero que nada gracias por querer ayudarme Jengaro.

Ok. Necesito hacer un programa que al ejecutarlo, pueda dar de altas, bajas, o modificaciones en la informacion de alumnos. Las opciones del archivo, son solicitar el archivo, grabar el registro. Iniciar el archivo, (crearlo o abrirlo), una vez creado dar de alta,baja o modificaciones en (nombre y adeudo) e imprimir los datos en un campo de texto.

jriveramota
11 de Junio del 2006
DISCULPA?? YA SOLUCIONASTE TU PROBLEMA, YA QUE YO TENGO EL MISMO!!!! HAY SI SABES COMO ME AVISAS POR FA!!