CS360
Assignment 2
Microwave
Oven
Date
Assigned: Tuesday,
February 17, 2004
Date
Due: Tuesday,
February 24, 2004
Total Points: 50
The objective of this assignment is to create a Java application that has a GUI depicting a microwave oven. The user enters the time (in minutes and seconds), the oven turns yellow (indicating that it is on) and the timer counts down until it reaches zero.
The goal of
this assignment is to write an application that combines the concepts we have
covered in class over the last week and a half. Specifically, you will need to:
-
Use
GUI components in a Java application
-
Use
event handling. In this case you need events for all the buttons.
-
Use
the Java API to look up a class that we have not used before. In this case you
need to use the Timer class to handle the ticking of the microwave timer.
-
Use
object-oriented concepts by creating a class and creating an instance of that
class in another one.
To write the microwave oven application you will need to
create two classes. The first class (call it CookingTime)
will handle the cooking time.
The class will have two instance variables (minute and second), constructors
and the following methods:
-
Get
and set methods for all variables
-
isDone method that returns true once both the minute and second variables have
reached zero
-
tick method that will change the variables (minute and second) appropriately
whenever the Timer class throws an action event
The second
class (call it MicrowaveOven) will create the graphical user interface and
create an instance of the CookingTime class.
The GUI
consists of buttons, panels and text fields. You are free to design the GUI any
way you like as long as you provide the functionality for entering the time,
hitting start and hitting cancel. You should also visually show that the oven
is on (the simplest way to do this is to change the colour), the timer counting down and the
timer has completed.
It is in
this class that you need to create an instance of the Java Timer class. Set the delay to 1000 milliseconds
(i.e. 1 second). You should start the timer whenever the user hits the start
button, and you should stop the timer when either the user hits the cancel
button or the timer reaches zero. The Timer class works by sending an action
event after every delay (in this case 1 second). You will need to use this
action event to decrement the minutes and seconds in the CookingTime class. The Timer class is located
in the javax.swing package.
You will need to perform the following error checking:
- If the user enters more than 4 numbers then you should ignore all numbers beyond the first four.
- The minutes range from 0-59 and the seconds range from 0-59. If the user enters a larger value for either of these, then your CookingTime class will need to reset the counter back to zero.
-
Class Timer
(javax.swing)
o start()
o stop()
-
Class String
(java.lang)
o substring()
-
Class DecimalFormat
(java.text)
o format()
-
Class Integer
(java.lang)
o parseInt(String x)
Save both of your files in a folder called (your PUNET ID) and place the folder in the CS360 drop folder by 9.25 AM on the assignment due date. You do not need to submit the .class files. Just submit your .java files.