Swing is a framework in Java that creates user interfaces. Since it is based on the Java language, it is object oriented. It contains various classes that extend one another, and the notion of extending a base class to add required functionality to that class is key to user interface programming in Java. Another key part of Swing programming is the notion of listeners: classes or components that "listen out for" a particular event happening such as a button being clicked. And listeners are generally implemented as Java interfaces.
- provides a graphical user interface that works on all operating systems
- it is object oriented
- it is easy to implement
- provides a nice interface
https://docs.oracle.com/javase/8/docs/technotes/guides/swing/
Abstract Window Toolkit (AWT) is a well known Java framework for creating graphical user interfaces.
- well documented and tested
- familiar to many students/maintainers
- relatively easy to learn
- implemented using the Java language (which is the language used in this project)
AWT is a part of Oracle's Java Foundation Classes, which makes it a trusted choice for creating graphical user interfaces. Because it's backed by Oracle, there is adequate documentation for maintainers to reference.
https://docs.oracle.com/javase/8/docs/technotes/guides/awt/
JavaFX is an open source platform for creating graphical user interfaces.
- the APIs are designed to be a friendly alternative to Java Virtual Machine (Java VM) languages, such as JRuby and Scala.
- JavaFX offers WebView, a web component that uses WebKitHTML technology to make it possible to embed web pages within a JavaFX application. JavaScript running in WebView can call Java APIs, and Java APIs can call JavaScript running in WebView.
- existing Swing applications can be updated with new JavaFX features, such as rich graphics media playback and embedded Web content.
- JavaFX provides all the major UI controls required to develop a full-featured application. Components can be skinned with standard Web technologies such as CSS.
With JavaFX, you can build many types of applications. Typically, they are network-aware applications that are deployed across multiple platforms and display information in a high-performance modern user interface that features audio, video, graphics, and animation.