The Java Foundation Classes (JFC) are a graphical framework for building portable
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
-based
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
s (GUIs). JFC consists of the
Abstract Window Toolkit
The Abstract Window Toolkit (AWT) is Java's original platform-dependent windowing, graphics, and user-interface widget toolkit, preceding Swing. The AWT is part of the Java Foundation Classes (JFC) — the standard API for providing a graphica ...
(AWT),
Swing
Swing or swinging may refer to:
Apparatus
* Swing (seat), a hanging seat that swings back and forth
* Pendulum, an object that swings
* Russian swing, a swing-like circus apparatus
* Sex swing, a type of harness for sexual intercourse
* Swing rid ...
and
Java 2D. Together, they provide a consistent user interface for Java programs, regardless of whether the underlying user interface system is
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
or
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
.
History
AWT existed before JFC.
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
Netscape Communications Corporation (originally Mosaic Communications Corporation) was an American independent computer services company with headquarters in Mountain View, California and then Dulles, Virginia. Its Netscape web browser was on ...
.
At the same time, another graphics library, called
Application Foundation Classes The Application Foundation Classes (AFC) were a graphical framework for building Java-based graphical user interfaces (GUIs), developed by Microsoft and shipped as part of the Microsoft SDK for Java. AFC was based on the Abstract Window Toolkit (A ...
(AFC), was developed independently by
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
. It was made to be easier to extend the graphic components, but was primarily aimed for use with the
Microsoft Java Virtual Machine
The Microsoft Java Virtual Machine (MSJVM) is a discontinued proprietary Java virtual machine from Microsoft. It was first made available for Internet Explorer 3 so that users could run Java applets when browsing on the World Wide Web. It was the ...
.
On April 2, 1997,
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, ...
and
Netscape
Netscape Communications Corporation (originally Mosaic Communications Corporation) was an American independent computer services company with headquarters in Mountain View, California and then Dulles, Virginia. Its Netscape web browser was on ...
announced their intention to combine IFC with other technologies to form the "Java Foundation Classes".
The "Java Foundation Classes" were later renamed "Swing", adding the capability for a
pluggable look and feel
Pluggable look and feel is a mechanism used in the Java Swing widget toolkit allowing to change the look and feel of the graphical user interface at runtime.
Swing allows an application to specialize the look and feel of widgets by modifying the ...
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.
Using the Java programming language, Java Foundation Classes (JFC) are pre-written code in the form of class libraries (coded routines) that give the programmer a comprehensive set of graphical user interface (GUI) routines to use. The Java Foundation Classes are comparable to the
Microsoft Foundation Class Library
Microsoft Foundation Class Library (MFC) is a C++ object-oriented library for developing desktop applications for Windows.
MFC was introduced by Microsoft in 1992 and quickly gained widespread use. While Microsoft has introduced alternative ap ...
(MFC). JFC is an extension of the original Java Abstract Windowing Toolkit (AWT). Using JFC and Swing, an additional set of program components, a programmer can write programs that are independent of the windowing system within a particular operating system.
See also
*
Standard Widget Toolkit
The Standard Widget Toolkit (SWT) is a graphical widget toolkit for use with the Java platform. It was originally developed by Stephen Northover at IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE. It is an alte ...
*
Java Class Library
The Java Class Library (JCL) is a set of Library (computer science)#Dynamic linking, dynamically loadable libraries that List of JVM languages, Java Virtual Machine (JVM) languages can call at Run time (program lifecycle phase), run time. Because ...
References
{{Java desktop
External links
Official JFC website at Sun
Java platform