Java Foundation Classes
Die Java Foundation Classes (JFC) sind eine Grafikbibliothek für die Erstellung portabler Java Graphical User Interfaces (GUIs). JFC besteht aus dem Abstract Window Toolkit (AWT), Swing und Java 2D. Gemeinsam stellen diese die Basis für plattformunabhängige Smart Client Java GUIs, unabhängig davon, ob das darunterliegende Betriebssystem auf Windows, Sun Solaris or Linux läuft. Für alle aktuellen Betriebssysteme gibt es ebenfalls Implementierungen.
History
AWT was heavily criticized for being little more than a wrapper around the native graphical capabilities of the host platform. That meant that the standard widgets in the AWT relied on those capabilities of the native widgets, requiring the developer to also be aware of the differences between host platforms.
An alternative graphics library called the Internet Foundation Classes was developed in more platform-independent code by Netscape.
At the same time, another graphics library, called Application Foundation Classes (AFC), was developed independently by Microsoft. It was made to be easier to extend the graphic components, but was primarily aimed for use with the Microsoft Java Virtual Machine.
Ultimately, Sun merged the IFC with other technologies under the name "Swing", adding the capability for a pluggable look and feel of the widgets. This allowed Swing programs to maintain a platform-independent code base, but mimic the look of a native application. The release of JFC made IFC obsolete, and dropped interest for Microsoft's AFC.
Java Media APIs
http://java.sun.com/javase/technologies/desktop/media/
Java 2D The Java 2D API is a set of classes for advanced 2D graphics and imaging, encompassing line art, text, and images in a single comprehensive model. The API provides extensive support for image compositing and alpha channel images, a set of classes to provide accurate color space definition and conversion, and a rich set of display-oriented imaging operators.
Java 3D The Java 3D API provides a set of object-oriented interfaces that support a high-level, scene-graph-based programming model that can be used to build, render, and control the behavior of 3D objects and visual environments. Using the Java 3D API, high-quality, high-performance, platform-independent 3D graphics may be incorporated into Java applications and applets.
Java Advanced Imaging The Java Advanced Imaging API (JAI) provides a set of object-oriented interfaces that supports a simple, high-level programming model which allows images to be manipulated easily in Java applications and applets. JAI goes beyond the functionality of traditional imaging APIs to provide a high-performance, platform-independent, extensible image processing framework.
Java Binding for OpenGL The Java Binding for the OpenGL API (JOGL) provides hardware-supported 3D graphics to applications written in Java. JOGL provides full access to the APIs in the OpenGL 2.0 specification as well as nearly all vendor extensions, and integrates with the AWT and Swing widget sets.
Java Image I/O The Java Image I/O API provides a pluggable architecture for working with images stored in files and accessed across the network. The JAI Image I/O Tools classes provide additional plugins for other stream types and for advanced formats such as JPEG-LS, JPEG2000, and TIFF.
Java Media Framework The Java MediaFramework API (JMF) enables audio, video and other time-based media to be added to applications and applets built on Java platform technology.