Sun Java Solaris Communities My SDN Account Join SDN
 
JFC

Java Foundation Classes Datasheet

 

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.