请参见:
描述
接口摘要 | |
---|---|
Action | Action 接口提供 ActionListener 接口的一个有用扩展,以便若干控件访问相同的功能。 |
BoundedRangeModel | 定义由 Slider 和 ProgressBar 这类组件使用的数据模型。 |
ButtonModel | 按钮的状态模型。 |
CellEditor | 此接口定义任何通用编辑器应该能够实现的方法。 |
ComboBoxEditor | 用于 JComboBox 组件的编辑器组件。 |
ComboBoxModel | 用于组合框的数据模型。 |
DesktopManager | DesktopManager 对象由 DesktopPane 对象所拥有。 |
Icon | 一个小的固定大小图片,通常用于装饰组件。 |
JComboBox.KeySelectionManager | 定义 KeySelectionManager 的接口。 |
ListCellRenderer | 标识可用作“橡皮图章”以绘制 JList 中单元格的组件。 |
ListModel | 此接口定义方法组件(如 JList),这些组件用于获取列表中每个单元格的值以及列表的长度。 |
ListSelectionModel | 此接口表示任何组件的当前选择状态,该组件显示一个具有稳定索引的值列表。 |
MenuElement | 可以放入菜单中的所有组件都应该实现此接口。 |
MutableComboBoxModel | ComboBoxModel 的可变版本。 |
Renderer | 为负责“呈现”(显示)值的对象定义需求。 |
RootPaneContainer | 此接口由具有单个 JRootPane 子组件的组件来实现,这些子组件包括:JDialog、JFrame、JWindow、JApplet、JInternalFrame。 |
Scrollable | 为类似 JScrollPane 的滚动容器提供信息的接口。 |
ScrollPaneConstants | 与 JScrollPane 组件一起使用的常数。 |
SingleSelectionModel | 最多支持一个索引选项的模型。 |
SpinnerModel | 对象值的潜在无界序列的模型。 |
SwingConstants | 通常用于在屏幕上定位或定向组件的常量的集合。 |
UIDefaults.ActiveValue | 此类使用户能够在默认表中存储项,该默认表在每次使用某个 getXXX(key) 方法进行查找时创建。 |
UIDefaults.LazyValue | 此类使用户能够在默认表中存储项,该默认表只有在第一次使用某个 getXXX(key) 方法进行查找时才创建。 |
WindowConstants | 用于控制窗口关闭操作的常量。 |
类摘要 | |
---|---|
AbstractAction | 此类提供 JFC Action 接口的默认实现。 |
AbstractButton | 定义按钮和菜单项的一般行为。 |
AbstractCellEditor | |
AbstractListModel | 该数据模型的抽象定义提供一个带内容的 List 。 |
AbstractSpinnerModel | 此类提供 SpinnerModel 接口的 ChangeListener 部分,该接口应该适用于最具体的 SpinnerModel 实现。 |
ActionMap | ActionMap 提供从 Object (称为键 或 Action 名)到 Action 的映射。 |
BorderFactory | 提供标准 Border 对象的工厂类。 |
Box | 使用 BoxLayout 对象作为其布局管理器的一个轻量级容器。 |
Box.Filler | 参与布局但没有视图的轻量级组件的实现。 |
BoxLayout | 允许垂直或水平布置多个组件的布局管理器。 |
ButtonGroup | 此类用于为一组按钮创建一个多斥(multiple-exclusion)作用域。 |
CellRendererPane | 此类被插入在单元格渲染器与使用它们的组件之间。 |
ComponentInputMap | ComponentInputMap 是与特定 JComponent 相关联的 InputMap 。 |
DebugGraphics | 支持图形调试的图形子类。 |
DefaultBoundedRangeModel | BoundedRangeModel 的一般实现。 |
DefaultButtonModel | Button 组件的数据模型的默认实现。 |
DefaultCellEditor | 表单元格和树单元格的默认编辑器。 |
DefaultComboBoxModel | 组合框的默认模型。 |
DefaultDesktopManager | 此类是 DesktopManager 的实现。 |
DefaultFocusManager | 此类已被废弃,用 1.4 focus API 取代。 |
DefaultListCellRenderer | 呈现列表中的一个项。 |
DefaultListCellRenderer.UIResource | 实现 UIResource 的 DefaultListCellRenderer 的子类。 |
DefaultListModel | 此类以松散方式实现 java.util.Vector API,它实现 1.1.x 版本的 java.util.Vector ,没有 collection 类支持,并且在发生更改时通知 ListDataListener 。 |
DefaultListSelectionModel | 列表选择的默认数据模型。 |
DefaultRowSorter<M,I> | RowSorter 的一个实现,它围绕基于网格的数据模型提供排序和过滤操作。 |
DefaultRowSorter.ModelWrapper<M,I> | DefaultRowSorter.ModelWrapper 负责提供由 DefaultRowSorter 进行排序的数据。 |
DefaultSingleSelectionModel | SingleSelectionModel 的一般实现。 |
FocusManager | 从 1.4 focus API 开始,此类已被废弃。 |
GrayFilter | 一个图像过滤器,它通过将图像转换成灰度级图像并增亮图像中的像素来“禁用”图像。 |
GroupLayout | GroupLayout 是一个 LayoutManager ,它将组件按层次分组,以决定它们在 Container 中的位置。 |
ImageIcon | 一个 Icon 接口的实现,它根据 Image 绘制 Icon。 |
InputMap | InputMap 提供输入事件(目前只使用 KeyStroke )和 Object 之间的绑定。 |
InputVerifier | 此类的用途是通过带文本字段的 GUI 帮助客户端支持流畅的焦点导航。 |
InternalFrameFocusTraversalPolicy | 该 FocusTraversalPolicy 可以有选择地提供确定 JInternalFrame 初始 Component 的算法。 |
JApplet | java.applet.Applet 的扩展版,它添加了对 JFC/Swing 组件架构的支持。 |
JButton | "push" 按钮的实现。 |
JCheckBox | 复选框的实现,复选框是一个可以被选定和取消选定的项,它将其状态显示给用户。 |
JCheckBoxMenuItem | 可以被选定或取消选定的菜单项。 |
JColorChooser | JColorChooser 提供一个用于允许用户操作和选择颜色的控制器窗格。 |
JComboBox | 将按钮或可编辑字段与下拉列表组合的组件。 |
JComponent | 该类是除顶层容器外所有 Swing 组件的基类。 |
JDesktopPane | 用于创建多文档界面或虚拟桌面的容器。 |
JDialog | 创建对话框窗口的主要类。 |
JEditorPane | 可编辑各种内容的文本组件。 |
JFileChooser | JFileChooser 为用户选择文件提供了一种简单的机制。 |
JFormattedTextField | JFormattedTextField 扩展了 JTextField ,添加了对格式化任意值的支持,以及一旦用户编辑了文本就检索特定对象的支持。 |
JFormattedTextField.AbstractFormatter | JFormattedTextField 所使用的 AbstractFormatter 实例,用于处理从 Object 到 String 和从 String 到 Object 的转换。 |
JFormattedTextField.AbstractFormatterFactory | JFormattedTextField 使用的 AbstractFormatterFactory 实例,用来获得 AbstractFormatter 实例,依次使用该实例格式化各个值。 |
JFrame | java.awt.Frame 的扩展版本,该版本添加了对 JFC/Swing 组件架构的支持。 |
JInternalFrame | 提供很多本机窗体功能的轻量级对象,这些功能包括拖动、关闭、变成图标、调整大小、标题显示和支持菜单栏。 |
JInternalFrame.JDesktopIcon | 此组件表示 JInternalFrame 的图标化版本。 |
JLabel | 用于短文本字符串或图像或二者的显示区。 |
JLayeredPane | JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。 |
JList | 显示对象列表并且允许用户选择一个或多个项的组件。 |
JList.DropLocation | TransferHandler.DropLocation 的一个子类,表示 JList 的放置位置 (drop location)。 |
JMenu | 菜单的该实现是一个包含 JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。 |
JMenuBar | 菜单栏的实现。 |
JMenuItem | 菜单中的项的实现。 |
JOptionPane | JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。 |
JPanel | JPanel 是一般轻量级容器。 |
JPasswordField | JPasswordField 是一个轻量级组件,允许编辑单行文本,其视图指示键入内容,但不显示原始字符。 |
JPopupMenu | 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口。 |
JPopupMenu.Separator | 弹出与菜单有关的分隔符。 |
JProgressBar | 以可视化形式显示某些任务进度的组件。 |
JRadioButton | 实现一个单选按钮,此按钮项可被选择或取消选择,并可为用户显示其状态。 |
JRadioButtonMenuItem | 一个单选按钮菜单项的实现。 |
JRootPane | 该轻量级容器由 JFrame 、JDialog 、JWindow 、JApplet 和 JInternalFrame 在后台使用。 |
JScrollBar | 滚动条的实现。 |
JScrollPane | 提供轻量级组件的 scrollable 视图。 |
JSeparator | JSeparator 为实现分隔线提供了一个通用组件 - 通常用作菜单项之间的分隔符,以便将菜单项分成几个逻辑组。 |
JSlider | 一个让用户以图形方式在有界区间内通过移动滑块来选择值的组件。 |
JSpinner | 让用户从一个有序序列中选择一个数字或者一个对象值的单行输入字段。 |
JSpinner.DateEditor | 其模型为 SpinnerDateModel 的 JSpinner 编辑器。 |
JSpinner.DefaultEditor | 一个针对非常特殊编辑器的简单基类,该类在 JFormattedTextField 中显示模型的当前值的只读视图。 |
JSpinner.ListEditor | 其模型为 SpinnerListModel 的 JSpinner 编辑器。 |
JSpinner.NumberEditor | 其模型为 SpinnerNumberModel 的 JSpinner 编辑器。 |
JSplitPane | JSplitPane 用于分隔两个(只能两个)Component 。 |
JTabbedPane | 一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。 |
JTable | JTable 用来显示和编辑常规二维单元表。 |
JTable.DropLocation | TransferHandler.DropLocation 的一个子类,表示 JTable 的放置位置 (drop location)。 |
JTextArea | JTextArea 是一个显示纯文本的多行区域。 |
JTextField | JTextField 是一个轻量级组件,它允许编辑单行文本。 |
JTextPane | 可以用以图形方式表示的属性来标记的文本组件。 |
JToggleButton | 具有两个状态的(two-state)按钮的实现。 |
JToggleButton.ToggleButtonModel | ToggleButton 模型。 |
JToolBar | JToolBar 提供了一个用来显示常用的 Action 或控件的组件。 |
JToolBar.Separator | 一个特定于工具栏的分隔符。 |
JToolTip | 用来显示 Component 的“提示”。 |
JTree | 将分层数据集显示为轮廓的控件。 |
JTree.DropLocation | TransferHandler.DropLocation 的一个子类,表示 JTree 的放置位置 (drop location)。 |
JTree.DynamicUtilTreeNode | DynamicUtilTreeNode 可以包装 vectors/hashtables/arrays/strings 并根据需要创建适当的子树节点。 |
JTree.EmptySelectionModel | EmptySelectionModel 是一个不允许选择任何内容的 TreeSelectionModel 。 |
JViewport | 用于查看底层信息的“视口”或“观察孔”。 |
JWindow | JWindow 是一个容器,可以显示在用户桌面上的任何位置。 |
KeyStroke | 表示键盘或等效输入设置上的键操作的 KeyStroke。 |
LayoutFocusTraversalPolicy | 根据 Component 的大小、位置和方向对其排序的 SortingFocusTraversalPolicy。 |
LayoutStyle | LayoutStyle 提供有关如何确定组件位置的信息。 |
LookAndFeel | 顾名思义,LookAndFeel 封装了一个外观。 |
MenuSelectionManager | MenuSelectionManager 拥有菜单层次结构中的选项。 |
OverlayLayout | 要在彼此顶部安排组件的布局管理器。 |
Popup | Popup 用于向用户显示 Component ,它通常位于特定包含层次结构中所有其他 Component 的顶部。 |
PopupFactory | 顾名思义,PopupFactory 用于获取 Popup 的实例。 |
ProgressMonitor | 监视某个操作的进度的类。 |
ProgressMonitorInputStream | 监视读取某些 InputStream 的进度。 |
RepaintManager | 此类管理重绘请求,以最大限度地降低重绘次数。 |
RowFilter<M,I> | RowFilter 用于从模型中过滤条目,使得这些条目不会在视图中显示。 |
RowFilter.Entry<M,I> | 一个传递给 RowFilter 实例的 Entry 对象,允许过滤器获取该条目的数据的值,以确定是否应该显示该条目。 |
RowSorter<M> | RowSorter 提供排序和过滤的基础。 |
RowSorter.SortKey | SortKey 描述特定列的排序顺序。 |
ScrollPaneLayout | JScrollPane 使用的布局管理器。 |
ScrollPaneLayout.UIResource | ScrollPaneLayout 的 UI 资源版本。 |
SizeRequirements | 为方便布局管理器,计算组件的有关大小和位置信息。 |
SizeSequence | 一个 SizeSequence 对象,它有效地维护一个包含大小和相应位置的顺序列表。 |
SortingFocusTraversalPolicy | 通过对焦点遍历循环的 Components 按给定 Comparator 排序确定遍历顺序的 FocusTraversalPolicy。 |
SpinnerDateModel | Date 序列的一个 SpinnerModel 。 |
SpinnerListModel | 其值由数组或 List 定义的 SpinnerModel 的简单实现。 |
SpinnerNumberModel | 用于数字序列的 SpinnerModel 。 |
Spring | 该 Spring 类的实例将存储以下三个表示其行为特征的属性:minimum、preferred 和 maximum 值。 |
SpringLayout | SpringLayout 根据一组约束布置其相关容器的子组件。 |
SpringLayout.Constraints | Constraints 对象将管理组件大小和位置更改方式的约束存储在 SpringLayout 控制的容器中。 |
SwingUtilities | Swing 实用方法的集合。 |
SwingWorker<T,V> | 在专用线程中执行长时间 GUI 交互任务的抽象类。 |
Timer | 在指定时间间隔触发一个或多个 ActionEvent 。 |
ToolTipManager | 管理系统中的所有 ToolTips 。 |
TransferHandler | 此类用于处理往返于 Swing 组件的 Transferable 的传输。 |
TransferHandler.DropLocation | 表示放置的数据 (dropped data) 应该插入的位置。 |
TransferHandler.TransferSupport | 此类封装剪贴板或拖放传输的所有相关详细信息,并且还允许自定义拖放过程的各方面。 |
UIDefaults | Swing 组件的默认值表。 |
UIDefaults.LazyInputMap | LazyInputMap 将在其 createValue 方法中创建一个 InputMap 。 |
UIDefaults.ProxyLazyValue | 此类提供一个可用于延迟加载要创建实例类的 LazyValue 的实现。 |
UIManager | UIManager 管理当前外观、可用外观集合、外观更改时被通知的 PropertyChangeListeners 、外观默认值以及获取各种默认值的便捷方法。 |
UIManager.LookAndFeelInfo | 为了配置菜单或为了初始应用程序设置而提供关于已安装的 LookAndFeel 的少量信息。 |
ViewportLayout | JViewport 的默认布局管理器。 |
枚举摘要 | |
---|---|
DropMode | 放置模式,用于确定组件在拖放过程中跟踪和指示放置位置 (drop location) 的方法。 |
GroupLayout.Alignment | ParallelGroup 能够对齐其子元素的可能方式的枚举。 |
JTable.PrintMode | 用于打印 JTable 的打印模式。 |
LayoutStyle.ComponentPlacement | ComponentPlacement 是两个组件相对于彼此的可能放置方式的枚举。 |
RowFilter.ComparisonType | 由某些默认 RowFilter 支持的可能比较值的枚举。 |
SortOrder | SortOrder 是可能排序顺序的枚举。 |
SwingWorker.StateValue | state 绑定 (bound) 属性的值。 |
异常摘要 | |
---|---|
UnsupportedLookAndFeelException | 指示在用户系统上不存在请求的外观管理类的异常。 |
提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。有关使用这些组件的程序员指南,请参阅 Creating a GUI with JFC/Swing,该内容在 The Java Tutorial 的结尾处。有关其他参考资料,请参阅相关文档。
典型的 Swing 应用程序执行处理以响应用户动作所生成的事件。例如,单击 JButton
通知所有添加到 JButton
的 ActionListener
。由于用户动作所生成的所有事件都在调度线程上指派,所以大部分开发人员不受该限制的影响。
但是,影响存在于构造以及显示 Swing 的应用程序中。对应用程序的 main
方法或 Applet
中方法的调用不在事件调度线程上调用。因此,构造和显示应用程序或 applet 时,必须注意要将控件转移到事件调度线程。转移控件和开始处理 Swing 的首选方法是使用 invokeLater
。invokeLater
方法安排 Runnable
在事件调度线程上处理。以下两个示例都同样很好地用于转移控件和启动 Swing 应用程序:
public class MyApp implements Runnable { public void run() { // Invoked on the event dispatching thread. // Construct and show GUI. } public static void main(String[] args) { SwingUtilities.invokeLater(new MyApp(args)); } }或:
public class MyApp { MyApp(String[] args) { // Invoked on the event dispatching thread. Do any initialization // here. } public void show() { // Show the UI. } public static void main(final String[] args) { // Schedule a job for the event-dispatching thread: // creating and showing this application's GUI. SwingUtilities.invokeLater(new Runnable() { public void run() { new MyApp(args).show(); } }); } }此限制也适用于连接到 Swing 组件的模型。例如,如果将
TableModel
连接到
JTable
,则
TableModel
应该只在事件调度线程上进行修改。如果修改单独线程上的模型,就有遭遇异常和可能的显示损坏的风险。
由于所有事件都是在事件调度线程上传递的,所以必须注意事件处理。尤其是,在事件调度线程上执行的长运行时间任务(如网络 io 或计算密集处理)将阻塞事件调度线程调度任何其他线程。事件调度线程受阻塞时,应用程序对用户输入完全没有反应。有关处理 Swing 时执行这种处理的首选方式,请参阅 SwingWorker
。
可以在 Swing tutorial 中,尤其是 How to Use Threads 一节找到关于此主题的更多信息。
有关概述、教程、示例、指南和其他文档的信息,请参阅: