Assignment 4 (100 Pts)

Due: Thursday, July 20

In this assignment, you're extending Assignment 3 with the concepts we recently covered--GUIs and Regular Expressions.

Designing a GUI

In Assignment 3, you may have added some basic code to allow the user to enter or edit new Media Items. You will now provide a GUI to allow the user to more easily edit and add items to the library. Note that the library file has a new extension and a slightly different format. The file may not showing up as a text file in the browser. You should save the file (perhaps using "save link as").

Your GUI should allow the user to

Design the GUI to be user-friendly, based on the concepts discussed in class and your intuitions for making the program usable. You may want to spend some time looking at the Swing Tutorials or API to make sure that you're using an appropriate component or widget for each part of your interface.

Regular Expressions

In the previous assignment, you read from a file to initialize the library when the program starts up. (Note that the format of the file has changed.) Modify your code to use regular expressions to parse the data file appropriately. (Depending on what you did in Assignment 3, this may require very few changes to your code.)

A driver program

Again, your driver program emulates a library that keeps track of all the media that is in the library. Your driver program will be very similar to the last driver, but the user interface is now a GUI instead of text-based.

When you execute your program, demonstrate your program's ability to handle strange or incorrect behavior as well.

Packages

All code should be self-contained in the packages for this assignment.

Java Docs

Generate and submit Java Docs for all of your classes, including your driver program.

README

Your README file should contain

Screen shots

Instead of a script file, you should submit 6-10 screen shots that demonstrate your GUI. You will submit your screenshots only on paper, not electronically.

There are mays ways to capture screen shots, depending on what platform/operating system you are running on.

It does not matter how you capture the screen shots. Figure out some way of capturing the image or printing your screen displaying it and make it work. You do not have to use XV or a Unix environment.

If possible, put multiple screen shots on each sheet of paper. Label each screen shot with some context about when the user saw this view. (You can label screen shots either in pen--if neatly written--or in print.)

Submission

Submit a printed version of your assignment--including the screen shots--at the beginning of class on Thursday, July 20.

Electronic Submission Organization

Your submission directory will look something like this:

Email a gzipped tar file of your assignment directory (named lastname, as shown above) to Ke (kli at cis.udel.edu) before next Thursday (July 20) at 11:59:59 p.m. Remember that you do not need the screenshots in your electronic submission.

Please do not submit your code from earlier assignments. You may need to create a temporary location that contains your submission so that you do not submit code from earlier assignments.

If you have any questions about submission, ask early!

Grading (100 pts)


This problem is based on a similar example from Objects First With Java by David Barnes and Michael Kolling.