Congratulations! If you're reading this, it means you've decided to stick it out to the very end. You've survived audiences, swimming fish and more bouncing shapes than anyone cares to count. Up until now, we've told you what to do -- but times they are a changin'. It's time for you the CSE115 students to stand up and be counted. To say, "We are sick of the monarchy! We are tired of having projects that all look the same! We are not just numbers! NO! We are programmers!" Rise up little programmers and read on...
To encourage you to be creative we are holding a contest for lab 7 submissions. The grand prize is 10 points extra credit (up to a maximum of 100 total points) on your exam average!
There are 2 categories: 1) Overall best GUI and 2) Most
creative.
For the most creative category, you must write a
creative story about your GUI,
include it as story.txt
in the zip file you submit.
Second place contestants will receive 8 points extra credit while third place gets 5 points extra credit on their exam average.
The competition is open across all sections of the course.
To compete in this competition, you should decide whether you want to be in the creative competition or the technical competition, and complete your Lab 7 program.
After the labs are graded, those submissions that have successfully completed all the requirements of the lab will be eligible to be judged.
To be judged, you will be required to present your program and its technical or creative merit in front of the Spring 2006 contest judging panel. A sign-up sheet for presentations will be available - tentative date is Friday, April 21st for presentations.
Good luck to all!
The following are the new concepts covered in this lab.
Here's your chance to be creative. The assignment specification is simple: create a "kick ass" graphical user interface that accomplishes some minor task. Use your imagination, artistic ability, and programming skill to make something that wows your friends and the TAs. Think moving shapes, changing colors, and 3-D rotating fractal landscapes. We've shown you how to create color changing and crazily swimming fish. What will you make?
To provide some direction we require the following elements:
NGP.Containers.DrawingPanel
.
NGP.Graphics
element on the drawing panel
that at some point in the program "animates" (ie - moves using
a NGP.Timer
).
NGP.Components.QuitButton
in your GUI.
QuitButton
). All of these
classes are located in the NGP.Components
package (with the
exception of NGP.KeyInteractor
). This means you should have
at least two different components on the GUI - you can have more.
The only elements that count for this requirement are the ones listed below.
Remember, each must do something useful. CSE115.Dialogs.ColorDialog
is also acceptableNGP.Containers.Column
and/or an NGP.Containers.Row
(you may also use an NGP.Containers.Grid
)
so that your components line up nicely within your GUI. By creating a GUI we hope that you will get a solid grasp of NGP. Use your creativity!
Make sure to do the reading listed below. Don't hesitate to also examine the CSE115.FishBowl
code in the Classlibs.jar
file.
Read the Classes' Public Interfaces section below.
Before coding, you should draw a picture of what you want your GUI to look like. From this, determine which graphical components you will need and which graphical containers you will need to format them. Also, you should draw yourself a class hierarchy diagram to understand which objects have to communicate and in what way. If you know exactly what you are doing before you start coding, you should have no problem writing it.
In order to be able to carry out the tasks required during your lab session, you must come prepared. Do the following before coming to your lab session:
Review the NGP code (and class notes) that were discussed in class.
At your lab session your teaching assistant will briefly discuss how to carry out each of the tasks below. She or he will also be available to answer questions you might have. You must carry out each of the following tasks.
This time, there's no skeleton. You must create your own project from scratch. Here are the steps you need to follow:
Note if you complete this process at home: If you want your project to work on coldplay (so it gets graded), you will need to do the following:
Once again you are required to design your solution to the lab. Create
a file called Lab7.dia
in the Lab7
project and submit
it with your project's jar file.
Use your picture of your GUI and the Classes' Public Interfaces to decide what has been written and what you need to create.
Once again, remember to design and code iteratively.
This is a listing of the classes that you need to fill in for this assignment.
App
App();
void main(String[] args);
the only stuff you need to read are the NGP Javadocs. You may also want to check out the CSE115 JavaDocs, for additional useful classes.
After you are finished writing your code, jar the Lab7 project and submit the resulting jar file, Lab7.jar.
You must follow all directions about filenames exactly, otherwise your work will not be graded.
Now you are ready to submit your work. Use the electronic submission program that corresponds to your recitation.
Due 11:59:59pm on Monday April 10th for all sections.