The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
JFC is short for Java Foundation Classes, which encompass a group of features for building graphical user interfaces (GUIs) and adding rich graphics functionality and interactivity to Java applications. It is defined as containing the features shown in the table below.
Feature | Description |
---|---|
Swing GUI Components | Includes everything from buttons to split panes to tables. Many components are capable of sorting, printing, and drag and drop, to name a few of the supported features. |
Pluggable Look-and-Feel Support | The look and feel of Swing applications is pluggable, allowing a choice of look and feel. For example, the same program can use either the Java or the Windows look and feel. Additionally, the Java platform supports the GTK+ look and feel, which makes hundreds of existing look and feels available to Swing programs. Many more look-and-feel packages are available from various sources. |
Accessibility API | Enables assistive technologies, such as screen readers and Braille displays, to get information from the user interface. |
Java 2D API | Enables developers to easily incorporate high-quality 2D graphics, text, and images in applications and applets. Java 2D includes extensive APIs for generating and sending high-quality output to printing devices. |
Internationalization | Allows developers to build applications that can interact with users worldwide in their own languages and cultural conventions. With the input method framework developers can build applications that accept text in languages that use thousands of different characters, such as Japanese, Chinese, or Korean. |
This trail concentrates on the Swing components. We help you choose the appropriate components for your GUI, tell you how to use them, and give you the background information you need to use them effectively. We also discuss other features as they apply to Swing components.
The Swing API is powerful, flexible — and immense. The Swing API has 18 public packages:
javax.accessibility |
javax.swing.plaf |
javax.swing.text |
javax.swing |
javax.swing.plaf.basic |
javax.swing.text.html |
javax.swing.border |
javax.swing.plaf.metal |
javax.swing.text.html.parser |
javax.swing.colorchooser |
javax.swing.plaf.multi |
javax.swing.text.rtf |
javax.swing.event |
javax.swing.plaf.synth |
javax.swing.tree |
javax.swing.filechooser |
javax.swing.table |
javax.swing.undo |
Fortunately, most programs use only a small subset of the API. This trail sorts out the API for you, giving you examples of common code and pointing you to methods and classes you're likely to need. Most of the code in this trail uses only one or two Swing packages:
javax.swing
javax.swing.event
(not always required)