Ejercicios
de la
Ejercicio 8.1.
8.1.1. Escriba una aplicación para Windows que sea un editor de textos. Aproveche el trabajo adelantado en los ejercicios 4.7. y 5.3. Haga que funcionen todas las opciones del menú, incluyendo las de guardar y guardar como. Utilice las clases File y RandomAccessFile.
8.1.2. Aproveche la clase java.awt.FileDialog (consúltela en los encabezados) para que las opciones de abrir y guardar como incluyan la navegación por el disco.
Ejercicio 8.2.
En este ejercicio se creará un manejador de una tabla de datos. El ejercicio es largo. Para quienes hagan esto por primera vez puede resultar algo difícil, pero para quienes tengan experiencia anterior en el tema resultará trivial.
8.2.1. Para comenzar cree una subclase de Panel llamada datosPersonales con etiquetas y campos de texto que le permitan capturar los datos personales de personas: nombre, teléfono, dirección, e-mail, fecha de nacimiento (en tres campos para año, mes y día) y lo que a Ud. se le ocurra.
8.2.2. Incluya en la clase datosPersonales variables y métodos para leer y guardar los datos contenidos en los campos de texto del panel en un archivo (un RandomAccessFile). Para comenzar debe incluir una variable de la clase RandomAccessFile y un método para asignarla. Luego debe incluir un entero que le diga el número de registro en el que se encuentra y métodos públicos para asignar desde otras clases el número de registro y para aumentarlo, para disminuirlo y para ir al primero y al último. Escriba un método para escribir un registro y otro para leerlo. Estos métodos deben usar el número del registro y el archivo para posicionarse en un sitio del archivo y realizar las operaciones de lectura y escritura de cada campo de texto de la forma. Cree también un método que genere datos por defecto para un registro y los ponga en los campos de texto.
Sugerencias: Para que todo funcione correctamente debe decidir claramente cuantos bytes va a ocupar cada dato de la forma de captura. Use la escritura (y lectura) de enteros (readInt y writeInt) para los campos numéricos. No olvide hacer las conversiones de cadena a entero y viceversa. Para escribir las cadenas use writeBytes . Debe cuidar de completar las cadenas (con (char)0) , al tamaño máximo antes de escribirlas al disco (use un StringBuffer para esto). Para leer cadenas debe usar el método read(byte[] b,int inicio,int tam) para que pueda leer el número exacto de bytes de cada cadena. Luego convertirá el array de bytes a una cadena usando alguno de los constructores de String para ponerla en el campo de texto que le corresponde.
8.2.3. Cree un marco (subclase de Frame) con un BorderLayout que en el centro tenga un datosPersonales y abajo tenga botones con nombres: inicio, anterior, insertar, suprimir, siguiente, fin y agregar. Haga que un clic a cada botón realice la operación que le corresponde sobre el objeto datosPersonales.
8.2.4. Debe hacer que al arrancar el programa verifique si se encuentra el archivo con la tabla en el disco (elija algún nombre fijo (por ejemplo personal.dat) y haga que si lo encuentra lo abra (para lectura y escritura con "rw") y pase al primer registro. Si el archivo no existe debe crearlo y construir un primer registro en blanco con datos por defecto.
8.2.5. Arranque el programa, corrija sus errores, depúrelo, organícelo lo mejor que pueda y agregue los detalles que se le ocurran.
8.2.6. Empaque los archivos generados en este ejercicio en uno llamado eje8.2_minombre.zip y envíelo a su tutor.
José Luis Abreu y Marta Oliveró