IT/ Computer Science - Java SE 8.0 and Java FX to Develop a Graphical User Interface (GUI) - Assessment Answer

Download Solution Order New Solution
Internal Code: 1AIJJG

IT/ Computer Science Assessment Answer

Assignment Task: You are required to use Java SE 8.0 and JavaFX to develop a Graphical User Interface (GUI) for the ThriftyRent rental vehicle management program created in Assignment 1. This assignment is designed to help you:
  1. Enhance your ability to build a Graphical User Interface using JavaFX
  2. Practise implementation of various GUI event handlers and handling exceptions
  3. Read from and write to a database using Java JDBC technology
  4. Incorporate text file handling in your program to import and export data
General Implementation Requirements -
  • All information displayed to the user and all user interactions should be done via the GUI. There must be no Console input and output.
  • You are free to create your own GUI layouts as long as your layouts are clear and meet the requirements shown in the following sections. Marks might be deducted for very poor GUI design.
  • Any user inputs via the GUI should be validated.
  • You must not use 3rd-party GUI components which are not built by you.
  • Marks will be allocated to proper documentation and coding layout and style. Your coding style should be consistent with standard coding conventions shown in the General Implementation Requirements section of Assignment 1.
  • Your programs will be marked with Java SE 8.0. Make sure you test your program with this setting before your final submission.
Task Specifications NOTE: Carefully read the following requirements. In addition, regularly follow the Canvas assignment discussion board for assignment-related clarifications and discussion. Packages and Organisation of Code - You must use the following packages to separate your code into sets of related classes and interfaces:
  • view: contains all your GUI classes.
  • controller: contains all your listener classes.
  • model: contains the main business logic of your application, all your classes to store and process data (Vehicle, Car, Van...), all exception classes and all database and file handling classes.
You can use sub-packages inside the packages shown above. Data Generation -  You are required to generate data for 15 vehicles, including 10 cars and 5 vans. Each vehicle needs to have 2 or 3 completed rental records with random information such as customer ids, rent, return dates, rental fees and late fees that you are free to choose as long as they are reasonable. Creating Custom Exception Classes In assignment 1, methods such as rent(...), return vehicle(...), perform maintenance(), complete maintenance(..) have boolean as return types to indicate whether the corresponding operation is executed successfully or not. In assignment 2, you are required to modify all those methods so that all of them will return void instead of boolean and will throw custom exceptions. You are required to create custom exceptions such as RentException, ReturnException, maintenance exception, InvalidIdException…. to represent various exceptional cases that can occur when those methods are executed. All of those custom exception types should allow appropriate error messages to be specified when exception objects are created. Generating and Propagating Exception Objects To use your custom exceptions effectively, you will need to look for areas in your program where you need to handle various cases such as when there is an invalid vehicle id,  or when a vehicle cannot be rented or returned, or when there is an invalid user input… Then you should generate appropriate exceptions and then throw those exceptions back to the appropriate class to be handled. Handling Exceptions Those various exception objects should then be allowed to propagate back to the appropriate class (i.e. that exception should not be caught locally within the class that generates the exception). All exceptions will need to be caught and handled in a appropriate manner by displaying a dialog box via the GUI to the user, showing the error message contained within the various exception objects that have been propagated up from the relevant method call. Using Database For Data Persistence - Every time your program is executed and terminated, data will be read from and save to a database. For this assignment, you should use an embedded HSQLDB (shown in the lecture) or SQLite database. You must keep all database files in a folder named database which is a direct subfolder of your assignment project. You must create at least two tables in your database. One table named VEHICLES to store details of rental vehicles, and another table named RENTAL_RECORDS to store details of rental records. In each table, you must store details of your vehicles and records in separate columns in those tables with appropriate data types, rather than just storing the string return by calling toString methods from those vehicle and rental record objects. Main Program Window
  • This is the first window a user will see when running your program.
  • This window should contain a menu bar from which users can execute the main functionalities of your program, such as import, export data, quit the program and other main functionalities described below. When a button is clicked or a menu item is selected, new windows or dialog boxes should be displayed to allow users to perform corresponding functionalities.
  • The centre area of this window will contain a scrollable list of rental vehicles managed by your program. Each list item displays information about a rental vehicle using various JavaFX User Interface Controls such as ImageView, Label, Buttons…, rather than just a text area showing the output of getDetails() method. Click here for an example of how the list of rental vehicles should look like.
    • In this list, each list item provides an overview of a rental vehicle with an image of that vehicle, vehicle type, status... and a button that users can click on to go to the detail view of that vehicle to perform more functionalities related to that vehicle (more details are in the Vehicle Detail Window section shown below)
  • Search and filtering capabilities: your main window should also contain 4 drop-down lists, allowing users to select list items from those lists to filter the main vehicle list by type (car, van) or by number of seats (4, 7 or 15 seats) or by status (Available, Rented, Maintenance) or by make (Honda, Toyota…)
Vehicle Detail Window
  • When the user selects a vehicle in the vehicle list shown in the Main Program Window, your program must display this Vehicle Details Window to allow the user to see all details of the selected vehicle, including a larger image of that vehicle.
  • This window must have a scrollable list to display complete rental records of that vehicle.
  • This window must have buttons which allow users to perform various activities related to this vehicle such as rent, return, maintenance and complete maintenance.
  • This window must still keep the main menu bar as mentioned in the Main Program Window section shown above, allowing users to perform common activities such as import, export data, quit the program and other main functionalities that you see reasonable.
  • Users should be provided with a way to return to the Main Program Window from this Detail Window
Other GUI Requirements
  • You are encouraged to explore and use various JavaFX User Interface (UI) controls to implement your graphical interfaces for functionalities such as add vehicle, return the vehicle, maintenance, and complete maintenance. My suggestions for such UI controls are the Dialog class and its subclasses such as TextInputDialog, ChoiceDialog and Alert classes in the JavaFX.scene.control package.
  • All user inputs via the GUI must be validated.
  • All error messages and messages from Exception objects should be displayed in the GUI using JavaFX Alert classes in the JavaFX.scene.control package. Do not output any error message to the Console.
  • Important functionalities such as Save to Database, Import, Export, Quit should always be available in the main menu bar your program.
This IT/ Computer Science Assessment has been solved by our IT/ Computer Science experts at onlineassignmentbank. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.