Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tema: Serializar Objetos a Serializacin de Objetos es un mecanismo fcil y rpido que provee Java para guardar y/o leer desde disco el estado de un Objeto, es decir de los atributos (datos) del objeto. Para serializar un Objeto ste al momento de definirse debe implementar la interface Serializable y para guardar o leer los Objetos se usan Streams (flujos) especializados como son ObjectOutputStream y ObjectInputStream con sus mtodos writeObject y readObject respectivamente.
En esta prctica veremos como usar la Serializacin de Objetos para guardar y/o leer los datos del Alumno que se ingresan en el formulario que diseamos previamente. Haremos una versin simple para serializar los datos de un slo alumno. La versin mejorada serializa una lista de alumnos. 1. Abrir el proyecto Sistema y agregue una nueva clase llamada Alumno aadindole la interfaz Serializable tal como se observa en la figura.
Figura 1:
public class Alumno implements Serializable { private String nombres; private String apellidos; private Date fena; private boolean sexo; private int nivel; private int grado; private int seccion; private int apoderado; private boolean becado; public Alumno() { nombres = ""; fena = null; nivel = 0; seccion = 0; becado = false; } apellidos = ""; sexo = true; // masculino grado = 0; apoderado = 0;
a) Modifica la clase agregando atributos y constructores tal como se muestra. b) Luego desde el men Cdigo fuente > Generar mtodos de obtencin y establecimiento... activar todas las casillas:
public Alumno(String nombres, String apellidos, Date fena, boolean sexo, int nivel, int grado, int seccion, int apoderado, boolean becado) { this.nombres = nombres; this.apellidos = apellidos; this.fena = fena; this.sexo = sexo; this.nivel = nivel; this.grado = grado; this.seccion = seccion; this.apoderado = apoderado; this.becado = becado; } }
c) Debes comprobar que se han creado los mtodos get (obtener) y set (setear/fijar) para cada atributo de nuestra clase Alumno. Respecto a becado y sexo modifique isBecado por getBecado as como isSexo por getSexo. Guarda los cambios. 2. Haz una copia de frmDatosAlumnos con el nombre FormularioAlumno. Es en esta copia que vamos hacer las modificaciones. a) Modifica los botones de comando tal como se muestran >>>>>>> b) Los nombres de los mismos deben ser btnLimpiar, btnLeer, etc Prof. Simn Quispeluza M. Pg. 1/3 IESPP-Jos Jimnez Borja
3. Agregar como atributo de la clase FormularioAlumno un objeto Alumno tal como se muestra.
private Alumno alumno = new Alumno();
Pg. 2/3
// Actualizar componentes con datos del alumno public void actualizarCampos(){ txtNombres.setText(alumno.getNombres()); txtApellidos.setText(alumno.getApellidos()); dcFena.setDate( alumno.getFena() ); cboNivel.setSelectedIndex(alumno.getNivel()); cboGrado.setSelectedIndex(alumno.getGrado()); cboSeccion.setSelectedIndex(alumno.getSeccion()); lstApoderados.setSelectedIndex(alumno.getApoderado()); lstApoderados.ensureIndexIsVisible(alumno.getApoderado()); bgSexo.clearSelection(); if (alumno.getSexo() == true) rbMasculino.setSelected(true); else rbFemenino.setSelected(true); chkBecado.setSelected(alumno.getBecado()); }
5. Ahora programar el mtodo actionPerformed de los objetos oyentes ActionListener de cada uno de los botones de comando: a) Para Limpiar:
limpiarCampos();
b) Para Leer:
if ( leerDisco() == true ) { limpiarCampos(); actualizarCampos(); } else JOptionPane.showMessageDialog(null, "No se pudo leer del disco", "Mensaje", JOptionPane.ERROR_MESSAGE);
c) Para Guardar:
if ( validarCampos() ) { capturarCampos(); guardarDisco(); } else JOptionPane.showMessageDialog(frmDatos, "Faltan datos", "Mensaje", JOptionPane.WARNING_MESSAGE); }
Actividades: Revise el cdigo de la versin mejorada del programa que gestiona una lista de alumnos, almacena y recupera de disco. Basndose en el mismo desarrolle un programa que permita administrar una agenda de contactos o amigos.
Pg. 3/3