| Java Programming Spring 2006 Homework #7 |
|   Course Syllabus   |   Java Programming Home   |   Assignment   |   Submitting |
Assignment
This assignment involves writing a GUI application that manages a collection of songs. You are free to determine much of this assignment yourself, although there are some minimal requirements (listed below). The general idea is to write something like iTunes to manage a colletion of songs, with the collection stored on disk (using Object serialization, XML or whatever you want).
The grading for this assignment will be a little different than with previous assignments. Any submissions that satisfies the requirements will receive a grade of at least 80. All the submissions that do meet the requirements will be sorted according to how easy-to-use, sophisticated, pretty and full-featured they are. The best of these submissions will receive the highest grade (100), and the worst of these will receive 80.
Each song record must include (at least) the following information:
There must be a way to create new song
There must be a way to edit a song
There must be a way to delete a song
There must be a way to organize songs into folders (playlists). This includes the following:
There must be a way to view the collection of songs (or any playlist/folder). When viewing a list of songs, the user must be able to order the songs according to any of:
There must be a menubar with at least a quit command
The collection must be persistent (you need to save and load the collection of songs from a file). Note that any playlists/folders (used to organize the collection) must also be saved.
You must use some kind of MVC based components in which you provide the model. In other words you need to show that you can use a JList, JTable or JTree (or any other MVC based component that allows you to provide the Model).
You must control the appearance of everything (you decide on fonts and colors, don't just use the defaults).
This project is too large to even consider stuffing all into a single file/class.
Instead of simply using GUI component classes, create customize versions of components (extend components and provide customization so they do exactly what you need). For example, if you want to use a JLabel to display a song name, create a SongLabel class that extends JLabel and includes all the specific stuff you want this label to do (or to look like).
Want to go for the gold? Here are some suggestions:
Submitting
Submit to WebCT dropbox for HW7. Make sure all your code is commented with JavaDoc comments!