$30
CMSC 335 Project 2
Overview
In the project you will construct a Java GUI that uses event handlers and listeners while expanding on the
project 1 Shape theme. Before completing this exercise, be sure to review and try the Java class and
inheritance examples and materials found on the Java Tutorial:
https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
Please also review the tutorial on Java FX (newer package) or legacy Java Swing.
Java FX:
• https://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm
• https://docs.oracle.com/javafx/2/ui_controls/jfxpub-ui_controls.htm
• https://docs.oracle.com/javase/8/javase-clienttechnologies.htm
• https://docs.oracle.com/javafx/2/
Java Swing (Legacy): https://docs.oracle.com/javase/tutorial/uiswing/index.html
Assignment Details
Design, implement and test a set of Java classes that allows a user to select a shape from a list of
available shape images, enter appropriate dimensional parameters (suggest a dropdown box of
dimensional size choices) and then display that shape in a frame (either as an image or as a drawing).
Your list of shapes should be similar, if not identical to the ones used in project one:
• Circle
• Square
• Triangle
• Rectangle
• Sphere
• Cube
• Cone
• Cylinder
• Torus
Take your time on understanding how the graphical components and listeners work so you can easily
display appropriate actions based on any event.
Submission Requirements:
1. Submit all of your Java source files (each class should be in a separate .java file). These files
should be zipped and submitted with the documentation.
2. UML class diagram showing the type of the class relationships.
3. Developer’s guide describing how to compile and execute the program. The guide should
include a comprehensive test plan that includes evidence of testing each component of the
menu with screen captures and descriptions supporting each test. Documentation includes
Lessons learned.
4. Test Plan in table format: #, Description, Screenshot, PASS/FAIL
Your compressed zip file should be submitted to the Project 2 folder as directed.
Grading Rubric:
Attribute
Meets
Design 45 points
Designs a Java class Inheritance hierarchy that would satisfy the following is- a
and has-a relationships:
• Circle
• Square
• Triangle
• Rectangle
• Sphere
• Cube
• Cone
• Cylinder
• Torus
Functionality 85 points
Contains no coding errors.
Contains no compile warnings.
Constructs a Java Swing GUI that uses event handlers and listeners while
expanding on the project 1 Shape theme.
Displays shapes in a frame of your FX or Swing -based GUI. For 3-D shapes
consider loading an image from a file and displaying that as a representative.
Test Data and
Test Plan
45 points
Tests the application using multiple and varied test cases.
Test plan in format described in requirements.
Documentation and
submission
40 points
Source code files include header comment block, including file name, date,
author, purpose, appropriate comments within the code, appropriate variable
and function names, correct indentation.
Submission includes Java source code files, Data files used to test your program,
Configuration files used.
Documentation includes a UML class diagram showing the type of the class
relationships.
Documentation includes a user's Guide describing of how to set up and run
your application.
Documentation includes a test plan with sample input and expected results,
test data and results and screen snapshots of some of your test cases.
Documentation includes Lessons learned.
Documentation is in an acceptable format. Document is well-organized.
The font size should be 12 point.
The page margins should be one inch. The paragraphs should be double spaced.
All figures, tables, equations, and references should be properly labeled and
formatted using APA style.
The document should contain minimal spelling and grammatical errors.
Any submissions that do not represent work originating from the student will be submitted to the
Dean’s office and evaluated for possible academic integrity violations and sanctions.