CS360 Assignment 2

Microwave Oven

 

Date Assigned: Tuesday, February 17, 2004

Date Due: Tuesday, February 24, 2004

Total Points: 50

Introduction

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.

 

 

 

Goals

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.

Assignment

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.

Error Checking

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.

Useful Classes and Methods

-       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)

Submitting your programs:

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.