Project 3: JavaFX Animation
Overview
In this project, you will create a program with a Graphical User
Interface (GUI) and animation built using JavaFX and Scene Builder.
Materials
Description
Write a Java Application. Your program can be anything you like, subject
to the following requirements
- You must incorporate a GUI built with JavaFX and SceneBuilder.
- At least one of the GUI components should have an event handler that
produces visible changes in the GUI.
- The program should include an interactive animation that makes use of the
various Shape classes.
- The GUI should have some persistent state that is modeled by a class
of your own creation.
- The
Controller
should have an instance of this class as one of its attributes.
- The class should represent an abstraction of the underlying data representation.
- The class should have a central data structure as one of its attributes, used in a manner pertinent to the application and suitable to the data structure.
- The central data structure can be an array, linked list,
PriorityQueue
, ArrayList
, Stack
, or ArrayDeque
.
- The program should do something useful or interesting. It need not
be complex, but it should be something that someone would
conceivably want to use.
Feel free to use the Java 19 API as a reference for any
piece of Java you might need.
What to Hand In
Submit a zip file containing your whole project via Teams, and an
evaluation document detailing the intent of your application, any unique
and interesting features in your application, and any joys or struggles
you encountered in creating your application.
Grading
To achieve Level 1 Complete, your project must
- incorporate a GUI built with JavaFX and SceneBuilder,
- be free of syntactic errors preventing compilation,
- include at least one GUI component with event handlers that visibly change the GUI,
- use an interactive animation that makes use of the various Shape classes, and
- the GUI has persistent state modeled by a pertinent class of the student’s creation, representing an abstraction of the underlying data representation.
- the
Controller
has an instance of this class as an attribute.
- the class uses an array, linked list,
PriorityQueue
, ArrayList
, Stack
, or ArrayDeque
in a useful and pertinent way.
To achieve Level 2 Complete, your project must
- work as intented (no bugs or missing elements)
- be something that someone would conceivably want to use,
- exhibit some creativity and have some interesting features, and
- include an evaluation document that:
- adequately describes the project;
- discusses how data is incorporated into and retrieved from its central data structure;
- correctly states the asymptotic time complexity of each operation invoked on the central data structure;
- discusses why, in light of the time complexity of those operations, the data structure is a good choice for the application.