Do (but don't turn in) some of the Exercises on pages 325-330 of the textbook, as many as you think you need. Read the chapter 8 example programs and use them as models for the following:
Write a program with two windows: a picture window and a controls window. In the picture window, one each of at least two kinds of graphical objects (subclasses of AView, e.g. SmileyFace and BoxWithX) will move around, bouncing off walls when they hit (you may want to write a BouncingObject class to implement this move-and-bounce behavior, and then have your classes inherit from this). In the control window, there will be several buttons: a "start" button and a "stop" button that cause the objects to start and stop moving, respectively, and a "change color" button that changes the colors of all the objects (what color to change them to is up to you).
For extra credit, the controls window will also have three scroll bars to control the red, green, and blue components of a color, so that whenever you click the "change color" button, it changes the colors of the objects to that color.
For more extra credit, each color scroll bar will have an associated text field: whenever the user moves the scroll bar, the value in the text field changes to match it, and whenever the user changes the value in the text field and hits ENTER, the scroll bar moves to match it. I suggest writing a DualControl class to represent this common behavior, allowing the user to control the same quantity both with a scroll bar and with a text field.
Hints:
Before you start writing the program, estimate how long the program will be, how long it'll take you to write, and how many defects you'll encounter in it. Enter these estimates in the PSP form. (If this is a major difficulty for you, you can record it in a text file or on paper.)
While working on the program, record your errors and how much time you spend on various aspects of the programming process, again using the PSP form.
You will not be graded on how close your estimate is, or how many errors you make, or how much time you spend, as long as I think all three of them are realistic. You will be graded on whether you record all this stuff. And don't wait until the program is finished to write the estimate; it's time-stamped, and you'll lose credit if it's dated the night before the assignment is due.
You should have a BlueJ project, which looks like a folder to the operating system (Windows, MacOS, etc.) Zip this folder, so you have a file named HW5.zip. Attach this file to an email to me.
If you've entered your estimates, defects, and time use in PSP, I've already got the data so you have nothing else to turn in. If you prefer recording it some other way, turn that in with your program.