Assignment 3
GUI & Polymorphism
Before attempting this project, be sure you have completed all the reading assignments, non-
graded exercises, discussions, and assignments to date.
Design and implement Java program as follows:
1) Implement converter class hierarchy as follows:
a. Converter class which includes:
â–ª Private attribute for input of data type double
â–ª Default constructor with no parameter which sets input to Double.NaN
â–ª Overloaded constructor with input for parameter
â–ª Get and set methods for input attribute
â–ª Method convert() which returns input value
b. TemperatureConverter class which is a child of Converter and
includes:
â–ª Constructors which call parent constructors
â–ª Overridden convert() method to convert input (Fahrenheit temperature) to
Celsius and returns the value. If the instance has no input value, it should
return Double.NaN
â–ª Use the following formula for conversion: C = ((F-32)*5)/9
c. DistanceConverter class which is a child of Converter and
includes:
â–ª Constructors which call parent constructors
â–ª Overridden convert() method to convert input (distance in miles) to distance in
kilometers and returns the value. If the instance has no input value, it should
return Double.NaN
d. Use the following formula for conversion: KM = M * 1.609
2) Implement GUIConverter class using JFrame and JPanel as follows:
a. GUI will have 3 buttons: “Distance Converterâ€, “Temperature Converterâ€,
and “Exitâ€.
b. When user clicks Exit, the program will terminate
c. When user clicks Distance Converter, an input dialog will pop up where user can type
value and click OK:
d. Once user clicks OK, message dialog will pop up:
e. When user clicks on Temperature button, an input dialog will pop up to input value
and then when clicks OK, the message dialog with pop up with converted result:
f. SUGGESTIONS:
â–ª For the input dialog you can use JOptionPane.showInputDialog
â–ª The ActionListener for each Converter button should create the appropriate
Converter child instance, set the input, and call its convert() method
â–ª For the pop up with converted value you can use
JOptionPane.showMessageDialog
Style and Documentation:
Make sure your Java program is using the recommended style such as:
â–ª Javadoc comment up front with your name as author, date, and brief purpose of
the program
â–ª Comments for variables and blocks of code to describe major
functionality
â–ª Meaningful variable names and prompts
â–ª Class names are written in upper CamelCase
â–ª Constants are written in All Capitals
â–ª Use proper spacing and empty lines to make code human readable
Capture execution:
You should capture and label screen captures associated with compiling your code, and running
a passing and failing scenario for each functionality
Submission requirements
Deliverables include Java program (.java) and a single Word (or PDF) document. The Java
files should be named appropriately, and the Word/PDF file should be named as Assignment3.
The word (or PDF) document should include screen captures showing the successful compiling
and running of each of the test scenario. Test scenarios should include all required functionality
of the program. Each screen capture should be properly labeled clearly indicated what the
screen capture represents.
Submit your files to Assignment 3 submission area no later than the due date listed in
your online classroom.
Grading Rubric:
The following grading rubric will be used to determine your grade:
Attribute Level Level Level 0
(15-20 points) (5-15 points) (0 – 5 points)
The Converter class Correct or Mistakes in Missing or significantly
hierarchy almost correct implementation incorrect implementation
attributes and
inheritance
structure and
polymorphism
(overloading and
overriding)
Welcome screen Correct or Mistakes in Missing or significantly
with buttons almost correct implementation incorrect implementation
code to display
three buttons
Distance Converter Correct or Mistakes in Missing or significantly
almost correct implementation incorrect implementation
code for distance
converter button
Temperature Correct or Mistakes in Missing or significantly
Converter almost correct implementation incorrect implementation
code for
temperature
converter button
Program Correct or Mistakes or Missing or significantly
documentation and almost correct incomplete menu, incorrect menu, documentation
style, screen menu, program documentation and/or style, or screen captures
captures comments, and/or style, and
identifiers, and screen captures
screen captures