• JFC stands for Java Foundation Classes.

  • Java Foundation Classes was first introduced at the 1997 in JavaOneSM developer conference.

  • JFC holds a group of features for making Graphical User Interfaces (GUI).

  • It is adding rich graphics interactivity and functionality to Java applications.

  • The Swing API is only one of five libraries that make up the JFC.

  • JFC also consist :
    • Abstract Window Toolkit(AWT).
    • Accessibility API.
    • Java 2D API.
    • Drag-and-Drop

Five APIs of the JFC
JFC Image


  • AWT are provided platform-independent windowing, graphics, and user-interface widget toolkit originally by Java but now it is part of JFC.

  • AWT is a set of application program interfaces(API)used to create GUI objects, such as buttons, scroll bars, and windows by Java Programmers.

  • JFC are a broad set of GUI class libraries which make it easier to develop the user interface part of an application program.


  • The Accessibility package provides help to users who have difficulty with traditional user interfaces.

  • Accessibility tools can be used in cooperation with devices such as audible text readers or keyboards to allow direct access to the Swing components.

  • Accessibility is divided into two parts: the Accessibility API which is shipped with the Swing distribution and the Accessibility Utilities API distributed separately.

  • All Swing components restrain support for accessibility.

Java 2D API

  • It contains classes for implementing fonts, and colors,various painting styles,complex shapes.

  • In this package is loosely based on APIs that were licensed from IBM's Taligent division.

  • The 2D API classes are not part of Swing.

Drag and Drop

  • Drag and drop is one of the most feature used in graphical interfaces today.

  • User allow to click and hold a GUI object, moving it to another window or frame in the desktop with predictable results.

  • Drag and Drop API allows users to implement droppable elements which transfer information between Java applications and native applications.

  • Drag and Drop is also not part of Swing.


  • Swing is the next-generation GUI toolkit which Sun Microsystems is developing to enable enterprise development in Java.

  • Swing is actually part of a large family of Java products which is known as Java Foundation Classes(JFC).

  • Swing is used to create large-scale Java applications with a wide array of powerful components which can you easily extend or modify these components to control their appearance and behavior based on the current "look and feel" library that is being used.

  • Swing provides set of components than AWT and they are 100% Java-based.

  • The Swing APIs entered beta in the later half of 1997 and their initial release was in March of 1998.

  • When Swing 1.0 is released,Swing 1.0 libraries contained near about 250 classes and 80 interfaces.

  • Swing was developed from the core Java Development Kit separately.

  • It require at least JDK 1.1.5 to run.

  • Advantages
  • Swing provides paint debugging support for when you build your own component is that slow motion rendering.

  • Swing components are lightweight than AWT.

  • Swing components follow the Model-View-Controller (MVC) paradigm and thus can provide a much more flexible UI.

  • Swing provides both additional components like JTable, JTree etc and added functionality to replacement of AWT components.

  • Disadvantages
  • It can be slower than AWT (all components are drawn),when you are not careful about programming.

  • Swing components might not behave exactly like native components which look like native components.