Lab 3: Image Transformer FXML


In this assignment, you will incorporate feedback from your instructor from previous assignments and develop a self-contained graphical user interface for the functionality developed in previous assignments.


Create a JavaFX program using FXML that provides a user interface that matches the screenshot below.

User Interface
Figure 1: User Interface

Here is what each button should do:


Create a ImageTransform class that extends the Application class.

Handler Methods

Your controller class must have the following handler methods to respond to the buttons on the UI: void open(ActionEvent event), void save(ActionEvent event), void grayscale(ActionEvent event), void invert(ActionEvent event), void brighten(ActionEvent event), void darken(ActionEvent event), void desaturate(ActionEvent event), and void saturate(ActionEvent event).

Transformations with Color

You will use the Color class to help implement the transformations.

Exception Handling

If any problems are encountered with reading the input files or writing the output file, the program should display a useful error message using the Alert class. Once dismissed, the user should be able to continue using the program. The program should not crash or display any exceptions.

Just For Fun

Ambitious students may wish to:


This laboratory assignment, developed by Dr. Chris Taylor.

See your professor's instructions for details on submission guidelines and due dates.