Java Foundation Classes Home
The Most Comprehensive Graphical User Interface Toolkit for 100%
Pure Java Applications
The Java Foundation Classes (JFC)
is the most compelling and complete graphical user interface (GUI)
toolkit available for 100% Pure JavaTM applications. The JFC includes a rich set of
GUI components and foundation services which allow commercial and
corporate developers to cut down on development time, simplify
software deployment, and produce more sophisticated and reliable cross
platform Java technology-based applications. Driven by an industry
initiative, the JFC brings developers a rich set of tools built by
Sun, Netscape, and IBM, and reviewed by over fifty partners. Using the
JFC, developers are able to create a new class of applications that
span client desktops, intranets, extranets, and the Internet. Now more
than ever, the Java platform delivers the tools necessary for high
performance, flexible, and mission-critical enterprise applications.
The Foundation Classes
The JFC consists of a comprehensive set of pre-built components and
foundation services for 100% Pure Java development. The JFC is a
superset of the existing Abstract Windowing Toolkit (AWT) and is fully
AWT compatible. The JFC extends the AWT component set by adding a
comprehensive set of lightweight and peerless components. These 100%
Pure Java components provide developers with enormous flexibility and
the ability to customize the logic and look and feel of JFC-based
applications. In addition, the JFC delivers sophisticated foundation
services such as the Java 2D API,
pluggable look and feel, cross platform capable drag and drop,
accessibility features for people with disabilities, and many other
services. The JFC's rich toolkit of components and services offers
commercial and in-house developers the industry's most robust
functionality, portability, and extensibility.
The Java Development Kit (JDK)
software provides a host of features that enable developers to enter
new markets with wide-ranging Java technology-based solutions. The
JFC, which is core to the JDK package, is a continually evolving set
of features that includes a rich suite of components and foundation
services that are fully cross-platform and offer significant
performance improvements.
The Java Foundation Classes: The GUI Toolkit for Commercial and Enterprise Development
Shorten Development Time. The JFC's comprehensive set of
pre-built components and foundation services make it possible for
developers to create powerful and dynamic Internet, intranet, and
desktop applications with fewer lines of code and in less
time. Because all of the JFC's GUI components are JavaBeansTM, the components can be effectively
manipulated by generic application building tools. Additionally,
developers can easily add richness to applications by incorporating
JFC foundation services such a drag and drop, cut and paste, and undo.
Platform Independence. The JFC brings commercial and
in-house developers the most advanced GUI toolkit for creating
applications that run on multiple platforms. Developers can now build
applications which work consistently across all Java
platforms. Developers gain a standard and integrated infrastructure on
which to base highly portable applications.
Flexible User Interface Design. The JFC provides
developers with enormous flexibility in user interface
design. Developers can create an application that reflects the look an
feel of one of many platforms on which the application can run. In
addition, the JFC enables developers to create a custom user interface
for applications. Using the JFC, developers write applications which
can be deployed with a single look and feel, which decreases the costs
of deployment, user training costs, and customer support demands.
Open Architecture. The JFC is built on top of an open
architecture. It allows developers to avoid application framework
lock-in. The JFC enables developers to extend their applications by
adding third party JavaBeans components.
Services for Users with Disabilities. The JFC provides a
foundation for assistive technologies such as screen readers, screen
magnifiers, Braille terminals, and speech recognition. These
technologies are used by people with and without disabilities. The JFC
delivers tools for ISVs and assistive technology vendors to meet
federal guidelines and to quickly make their technologies Java
savvy. Java technology in this area is driven by the knowledge that
designing to meet the needs of users with disabilities can improve the
productivity of all users and can open new markets to
developers. These technologies make possible further advances in Java
development in areas such as speech recognition and text to speech on
nomadic devices which do not rely on either touch or vision.
Sophisticated Visual Applications. Java 2D benefits
virtually all Java developers by enabling the incorporation of
sophisticated graphics and text. Java 2D brings the concept of "Write
Once, Run Anywhere" to
applications which require enhanced 2D graphics and imaging
capabilities. As a result, Java developers can easily incorporate
high-quality, scalable, and platform-independent graphics to create a
richer end-user experience. In addition, Java 2D adds advanced text
handling capability including the use of Type 1 and True Type fonts
and text internationalization.
An Industry Initiative. Java Developers have demanded a single
industry standard solution for creating commercial applications which
behave precisely the same way across multiple platforms. The JFC is a
comprehensive set of GUI components and foundation services developed
by Sun, Netscape, IBM, and Java developers throughout the
industry. More than 50 companies are participating in the JFC Advisory
Council.
The Council is helping define the JFC, which incorporates many of the
best features of the Netscape Internet Foundation Classes, and is an
extension of Sun's original foundation classes, the AWT.
The Java Foundation Classes
Components
Basic and High Level Components are built on top of the JFC's lightweight
UI framework. All components are pre-built, configurable, and written
completely in Java. The JFC's Basic and High Level Components are fully
compatible with JDK 1.1 and subsequent JDK releases.
Basic Components
The JFC's basic GUI components provide a standard and extensible base for
creating GUI-based applications. Basic components include border, button,
text field, list box, combo box, check box, label, menu, split
pane, icon, scroll pane, password field, progress bar, scroll bar, slider,
spinner, split pane, tool bar, viewport, and scroll pane.
High Level Components
Advanced Text Support. JFC Advanced Text support is set
of components that is highly customizable by developers and end
users. Advanced Text Support is a versatile framework for the building
of programming and electronic document environments. It enables
transparency and can embed objects such as buttons, movies and
pictures into components and applications. Advanced Text also supports
RTF and HTML as readers and writers.
Choosers. The JFC provides a comprehensive set of
pre-built choosers. Choosers include color chooser, date chooser,
file chooser, and font chooser. This rich set of choosers allows
developers to save time and brings application consistency to end
users.
Internal Frame. Internal Frame simplifies the creation
of customizable windows for 100% Pure Java applications and
applets. As in native windows, internal frames support iconification,
dragging, zooming, and other manipulations.
Dialog Boxes. The JFC's rich set of dialog boxes include
an error box, an information box, a query box, and a warning box. The
comprehensive set of dialog boxes allows developers to use pre-built
components to create consistent look and feels across all Java
platforms.
Tabbed Pane. The Tabbed Pane component displays labels
that resemble the tabs on a set of file folders. When a user clicks
one of the tabs, the child component associated with the selected tab
opens so that the user can view it. After an end user selects a
particular tab, all other tabs remain visible.
Table. Table is a sophisticated user interface component
which presents data in two dimensional table format. The component
features resizable and reordable columns, a flexible row and column
selection mechanism, cells that can be displayed with arbitrary
components such as text fields or combo boxes, flexible cell editing,
and support for large data sets.
Tree. The Tree component is a user interface component
that presents arbitrary hierarchical data in a logical and easy to use
outline format. This component greatly simplifies the implementation
of trees and allows a developer to use any object that he or she
chooses as a node class.
JFC Foundation Services
Java 2D. Java 2D provides a powerful and flexible
framework for device and resolution independent graphics. The API is a
set of classes which extends the capabilities of the AWT graphics
model. Java 2D handles arbitrary shapes, text, and images and provides
a uniform mechanism for all of these to be rotated, scaled, skewed,
and otherwise transformed. With Java 2D, developers can support a wide
variety of presentation devices such as displays and printers, image
formats, encoding, color spaces, and rendering techniques and
effects. Java 2D also offers color support and comprehensive text and
font handling, including internationalized text handling.
Java Accessibility. Java Accessibility allows assistive
technologies to interact and to communicate with JFC and AWT
components. Assistive technologies are used by people with and without
disabilities and include screen readers, screen magnifiers, Braille
terminals, and speech recognition. Applications developed using JFC
will help ISVs meet federal regulations on accessibility. Developers
can easily build accessible custom components and assistive technology
vendors can quickly make their technologies Java savvy. The API also
supports the development of accessible looks and feels that provide
direct access to applications such as an audio look and feel. The
Accessibility API's open design has been endorsed by IBM, Netscape,
the American Foundation for the Blind, the American Council for the
Blind, and other industry partners.
Application Object. The Application Object provides a
simple and consistent mechanism to manage the start up and shut down
of an application.
Custom Cursor. Custom Cursor benefits developers by
supporting a range of cursors on various systems, from two colors with
image transparency to 256 color cursors.
Data Transfer/Clipboard. The Data Transfer/Clipboard
service enables Java applications and applets to share text and other
data with native non-Java applications.
Debug Graphics. Debug Graphics is a mechanism which
allows developers to test whether JFC components are being drawn
correctly. It is controlled at the component level, enabling
developers to see drawing in a component and in its children. Drawing
operations can also be logged for later review.
Delegation Event Model. This event model makes
large-scale application development possible by providing a clean
separation between the user interface and application logic. Events,
such as a mouse click on a button, can now be forwarded to separate
objects for processing.
Drag and Drop. The Drag and Drop API empowers developers
to write Java applications which will interoperate with platform
native applications. Developers no longer have to write code many
times for varying platforms. Drag and Drop functionality is
specifically designed to allow users to drag text or images between
Java and native applications, enabling interoperation with Win32,
CDE/Motif, MacOS, and JavaOS.
Event Queue. The JFC uses a shared Event Queue to
synchronize events from multiple sources. The Event Queue provides
several key features to developers: automatic repaint batching,
automatic layout validation batching, and timers that fire
synchronously with event dispatching.
Keyboard Navigation. The JFC supports not only
menu-related keyboard shortcuts, but other kinds of keyboard
navigation as well. This service offers fully functional support to
control the user interface from the keyboard.
Layout Managers. Layout Managers allow developers to
predefine how text, images, and widgets should be positioned when a
window is resized. The Spring Layout, Box Layout, and Overlay Layout
Managers are straightforward tools which allow developers to define
which spaces should change size when a component is resized, that
properly place components from left to right and top to bottom, and
that arrange components on top of each other. Other Layout Managers
include Border Layouts, Grid Layouts, Grid Bag Layouts, Card Layouts,
and Flow Layouts.
Lightweight UI Framework. Java Programs can directly
extend the AWT component and container classes to create lightweight
components. These components can be transparent and are implemented in
100% Pure Java, which ensures consistency across platforms.
Pluggable Look and Feel. One of the JFC's most important
features is its Pluggable Look and Feel design. This design increases
the reliability and consistency of applications and applets deployed
across platforms. Additionally, Pluggable Look and Feel brings
flexibility to developers because it enables standard components to be
customized to have more than one look and feel.
Printing. Full printing capabilities enable Java
programs to easily print all graphics that are rendered on the screen.
Repaint Batching. Repaint Batching offers increased
performance to developers over existing repaint methods. When a
model's attribute changes, the view part of the affected component
will redisplay the smallest region that has changed, instead of
repainting the entire component.
System Colors. System Colors enables Java programs to query
user-configured desktop color schemes and to then adapt their own GUI
colors to integrate seamlessly into the user's environment.
Target Manager. Target Manager provides developers with
a simple method for dynamically determining the target of an
action. Developers also gain the ability to use off the shelf
components, including JFC components, with the assurance that actions
and their targets will work together.
Tool Tips. The JFC's tool tips is a simple "bubble help"
feature which enables developers to easily add explanatory text to
applications. When an end user's mouse hovers over a component, tool
tips provides extra text information about a component's purpose and
function.
Undo. The JFC Undo service facilitates a simple, one
shot undo/redo command. The undo/redo service is flexible enough to
extend to all types of applications, is simple to use and to extend,
and supports JavaBeans.
|