The aim of this assignment is to get to grips with Java's graphics library facilities, to demonstrate the design and programming skills which you have acquired from the course, and to show off some creativity.

Your task is to create any Java program you like which has a graphical user interface, and shows off Java's graphics facilities in some way. I expect most of you to use JavaFX, but if you want to use Swing (e.g. because JavaFX isn't avaliable in the lab) that's OK, and I've posted last year's Swing-based lecture notes to help. Your program could be a pet project you've wanted to have a go at for some time, or it could be a game or other interesting or useful application. It is deliberately completely open ended, to give you creative freedom.

Since Java's graphics facilities are extensive, you are not expected to cover them all. You may want to concentrate on the layout of a conventional graphical user interface using widgets such as buttons and menus and so on. Alternatively, you may want to concentrate on drawing issues such as sketching or drag-and-drop. Or perhaps you could investigate the support for handling or manipulating images. If your interests are in the area of user interaction, then a game might suit you well. Or if you have strong non-graphical interests, you may want to concentrate on developing something interesting where the graphical interface is relatively incidental and simple. If you want to experiment with libraries beyond the standard ones (e.g. 3-D) or if you want to write an Android app to gain experience in that area, that's OK too, but please avoid web applets since they are essentially obsolete now.

You can name your program anything you want, but I don't recommend calling it Graphics.java because that is likely to clash with the Graphicslibrary class (at least if you are using Swing). You can either take on something relatively simple and polish it well, or try something more ambitious and submit a proof-of-concept prototype. If you produce a normal application, packaging it as an executable jar file would be convenient. In any case, it is a good idea to submit a zip or jar file with all the source code and resources such as images in it, plus instructions or a make or ant file to tell me how to build and run the program.

As well as the program, you should produce a report (report.pdf or report.txt or report.html) which explains the design of your program, tells me about your experiences in developing it, and points out any features which I might otherwise miss. Also mention any external library that you used, and include a link in the report to the website where it was downloaded from. You should also acknowledge any code which you copied or adapted (beyond simple examples from tutorials) and any IDE or other development tools which you used.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.