Sei sulla pagina 1di 3

Archivos y DBMS en una aplicación GUI

Para este laboratorio, trabajará en una sencilla aplicación GUI. El punto de partida para su trabajo consta
de cuatro archivos (TextCollage, DrawTextItem, DrawTextPanel, y SimpleFileChooser) en el directorio de
código. Estos archivos se supone que están en el paquete llamado "textcollage". Inicie un proyecto
Eclipse, cree un paquete denominado textcollage en ese proyecto y copie los cuatro archivos en el
paquete. Para ejecutar el programa, debe ejecutar el archivo TextCollage.java, que contiene la rutina
principal. Tendrá que buscar en DrawTextItem.java y SimpleFileChooser.java, pero el único archivo que
tiene que editar es DrawTextPanel.java.

Parte 1: ArrayLists (1.0)

Puede ejecutar TextCollage para ver lo que hace. Tal como está, puede hacer clic en el área de dibujo
para colocar una cadena en el lienzo. El texto de la cadena proviene del cuadro de entrada en la parte
inferior de la ventana. El programa solo tiene soporte para una cadena. Si vuelve a hacer clic con el
mouse, la cadena anterior desaparece y la cadena aparece en la ubicación del nuevo clic del mouse. Una
cadena del programa se representa mediante una variable de
tipo DrawTextItem. Además de la propia cadena, un DrawTextItem contiene información sobre la
apariencia de la cadena, como su color, fuente, color de fondo, rotación y si tiene un borde. (El método
doMousePress, donde se crean cadenas, tiene algunas líneas que puede quitar de comentario para
experimentar con estas opciones.) Su
primera jobes reemplazar la variable theString, que esun único DrawTextItem, con una variable de tipo
ArrayList<DrawTextItem> que puede contener cualquier número de elementos de texto. A continuación,
tendrá que
modificar el programa dondequiera que se utilizó theString . Por ejemplo, en el método doMousePress,
debe agregar la variable DrawTextItem recién creada a la lista de matrices, en lugar de asignarla a
theString. Cuando haya terminado, debería poder agregar varias cadenas a la imagen, y los comandos
"Deshacer" y "Borrar" en el menú "Editar" deberían funcionar. (El comando "Guardar imagen" en el menú
"Archivo" y los comandos del menú "Opciones" también funcionan, pero ya estaban funcionando antes de
realizar cambios.)

Parte 2: Archivos (1.5)

El programa ya es capaz de guardar el contenido del área de dibujo como una imagen. Pero cuando haces
esto, no hay manera de volver atrás y editar las cuerdas en la imagen. Para poder hacerlo, debe guardar
toda la información que define las cadenas, no solo la imagen donde se muestran las cadenas. Para eso
están los comandos "Guardar" y "Abrir" en el menú "Archivo". El comando "Guardar" debe crear un
archivo de texto que describa el contenido de la imagen (es decir, el color de fondo y la lista de matrices
de DrawTextItems). El comando "Abrir" debe ser capaz de leer un archivo creado por el comando
"Guardar" y restaurar el estado del programa. Puede ver la implementación del comando "Guardar
imagen" para obtener algunas sugerencias. Tenga en cuenta, en particular, el uso de try.. catch para
detectar cualquier excepción que se produce durante la manipulación de archivos; siempre debe hacer
algo similar cuando se trabaja con archivos, y debe informar de cualquier error al usuario. En primer lugar,
implemente el comando "Guardar". Utilice el método
fileChooser.getOutputFile para obtener un archivo del usuario. (fileChooser es una variable de tipo
SimpleFileChooser, que ya está definida. Consulte la implementación de "Guardar imagen" para obtener
un ejemplo de uso.) Cree un PrintWriter para escribir en el archivo. Emitir una representación de texto
del color de fondo de la imagen y, a continuación, escribir al menos el texto y el color de cada
DrawTextItem en la lista de matrices. No olvide cerrar PrintWriter. Tenga en cuenta que puede
representar un color c como los tres enteros c.getRed(), c.getGreen() y c.getBlue(). Diseñe el formato del
archivo de salida para que sea fácil leer los datos más adelante. Poner cada valor de salida en una línea
separada es el enfoque más fácil. Pruebe su trabajo guardando un archivo y mirando su contenido. A
continuación, puede implementar el comando "Abrir". Utilice el método
fileChooser.getInputFile para permitir al usuario seleccionar un archivo para la entrada. Cree un escáner
para leer desde el archivo. Debe utilizar el escáner para leer el contenido del archivo en el programa y
reconstruir la imagen representada por el contenido del archivo. Por supuesto, esto sólo se realizará
correctamente si el archivo es uno que se guardó previamente desde el programa mediante el comando
Guardar (o si sigue exactamente la misma sintaxis que tal archivo). Nota: Siempre y cuando cada
elemento esté en su propia línea en el archivo, puede utilizar scanner.nextLine() para leer elementos
del archivo. Si está intentando leer un entero, utilice Integer.parseInt(scanner.nextLine()). Debe conocer
el orden en el que se escribieron los elementos de datos y debe leerlos en el mismo orden. Si se produce
algún error, significa que el archivo no tiene la forma correcta. No olvides llamar a canvas.repaint() al
final, para hacer visible la nueva imagen. Idealmente, si se produce un error, no debe cambiar el
contenido actual de la imagen..

Parte 3: ¡Mejora el programa! (1.0)

Para completar el programa, debe diseñar al menos una característica adicional y agregarla al programa.
Debe consultar con su asesor del curso sobre lo que sería apropiado y cómo hacerlo. La calificación se
basará en parte en la creatividad, la ambición y el grado de consulta. Probablemente tendrá que ampliar
el formato de archivo para adaptarse a las nuevas características. Por ejemplo, podría agregar nuevas
opciones para controlar la apariencia de las cadenas. El
DrawTextItem clase, que se utiliza para representar las cadenas que se dibujan en la imagen, tiene una
variedad de propiedades que se pueden aplicar a las cadenas. Algunos ejemplos se pueden encontrar,
comentados, en el método doMousePressed() en la drawTextPanel clase. Otra posibilidad sería permitir
al usuario arrastrar elementos de texto en la pantalla, después de que se han colocado. O bien, podría
agregar la capacidad de crear un collage de texto aleatorio utilizando un montón de cadenas
seleccionadas al azar de un archivo de texto especificado por el usuario.

Parte 4: Base de datos Postgres! (1.5)


Coloque las opciones en el menú que le permite almacenar la imagen, almacenar los datos del proyecto y
recuperarlos como los iones optanteriores, pero esta vez en las bases de datos PostgreSQL (Enviar una
copia de seguridad de la base de datos)..

Potrebbero piacerti anche