In this project, you will create a program with a Graphical User Interface (GUI) built using JavaFX and Scene Builder.
Write a Java Application. Your program can be anything you like, subject to the following requirements
Controller
ArrayList
Stack
ArrayDeque
Feel free to use the Java 21 API as a reference for any piece of Java you might need.
To help you make progress on your project, you will need to submit a design idea via email on or before March 6th. This design idea should be at least two sentences, discussing your plan for the project. You will receive feedback and approval of your design idea within 1 day.
This project requires the use of a persistent state, as did Project 1, to record information. The TipCalculator app from Lab 6 did not require a persistent state, while the ButtonClicker app used an int in the controller to remember state. You will need to use a class for your state for full credit on this project.
int
For this project, try not to think too big. Keep your expectations reasonable; this is the first time you will be creating a JavaFX GUI application by yourself and it will take effort to get all the GUI pieces working correctly. Work early and often!
Your idea for a project will most likely involve using components that were not discussed in Lab 6. Please investigate what is possible in the JavaFX API to see what is available.
One option for a project would be to base your code on one of the Homework classes (e.g. Garden, TootsiePop).
Alternately, some students have found success revisiting their Project 1 classes and modifying them to use a GUI instead of command line text input.
As a reminder:
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.
To achieve Level 1 Complete, your project must
To achieve Level 2 Complete, your project must
In addition to the above specifications, you must schedule a one-on-one meeting with me to discuss your app. In this meeting, I will be asking you to explain your coding decisions and make a modification to your code base. If your explanation or code modification is not completed satisfactorily, this project will remain Level 1. This meeting requirement can be reattempted two more times before the grade of Level 1 is permanent.