# 关于 JFC 和 Swing

> 原文： [https://docs.oracle.com/javase/tutorial/uiswing/start/about.html](https://docs.oracle.com/javase/tutorial/uiswing/start/about.html)

JFC 是 Java Foundation Classes 的缩写，它包含一组用于构建图形用户界面（GUI）和为 Java 应用程序添加丰富的图形功能和交互性的功能。它被定义为包含下表中显示的功能。

| 特征 | 描述 |
| --- | --- |
| Swing GUI 组件 | 包括从按钮到拆分窗格到表格的所有内容。许多组件都能够进行排序，打印和拖放，以列举一些支持的功能。 |
| 可插拔的外观支持 | Swing 应用程序的外观和感觉是可插拔的，允许选择外观和感觉。例如，同一程序可以使用 Java 或 Windows 外观。此外，Java 平台支持 GTK +外观，使 Swing 程序可以使用数百种现有外观。可以从各种来源获得更多的外观包装。 |
| 辅助功能 API | 启用辅助技术（如屏幕阅读器和盲文显示器）以从用户界面获取信息。 |
| Java 2D API | 使开发人员能够轻松地在应用程序和 applet 中集成高质量的 2D 图形，文本和图像。 Java 2D 包括用于生成和向打印设备发送高质量输出的大量 API。 |
| 国际化 | 允许开发人员构建可以使用自己的语言和文化习俗与全球用户进行交互的应用程序。使用输入法框架，开发人员可以构建接受使用数千种不同字符的语言的文本的应用程序，例如日语，中文或韩语。 |

这条线路集中在 Swing 组件上。我们帮助您为 GUI 选择合适的组件，告诉您如何使用它们，并为您提供有效使用它们所需的背景信息。我们还讨论了适用于 Swing 组件的其他功能。

## 我应该使用哪种秋千包装？

Swing API 功能强大，灵活 - 而且非常庞大。 Swing API 有 18 个公共包：

| `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` |

幸运的是，大多数程序只使用 API​​的一小部分。此跟踪为您排序 API，为您提供公共代码的示例，并指出您可能需要的方法和类。此跟踪中的大多数代码仅使用一个或两个 Swing 包：

*   `javax.swing`
*   `javax.swing.event`（并非总是需要）