Java教程是为JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9和后续版本中更新的语言特性的摘要,请参见Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息,请参见JDK发布说明。
通过查看可以在组件上注册的事件监听器的类型,您可以了解组件可以触发哪些类型的事件。例如,JComboBox
类定义了以下监听器注册方法:
addActionListener
addItemListener
addPopupMenuListener
因此,除了从JComponent
继承的监听器方法之外,组合框还支持动作、项目和上下文菜单监听器。
Swing组件支持的监听器分为两类:
因为所有Swing组件都是从AWT的Component
类继承而来的,您可以在任何Swing组件上注册以下监听器:
所有Swing组件都是从AWT的Container
类继承而来,但其中许多组件并不用作容器。因此,严格地说,任何Swing组件都可以触发容器事件,该事件通知监听器组件已被添加到容器或从容器中移除。然而,从实际情况来看,只有容器(如面板和框架)和复合组件(如组合框)通常会触发容器事件。
JComponent
提供了对三种更多的监听器类型的支持。您可以注册一个祖先监听器,以便在组件的容器祖先被添加到或从容器中移除,隐藏,显示或移动时得到通知。这种监听器类型是一个实现细节,它先于层次结构监听器出现。
另外两种监听器类型是Swing组件遵循JavaBeans规范的一部分。这意味着Swing组件支持绑定和约束属性,并通知监听器属性的更改。属性更改监听器监听绑定属性的更改,被几个Swing组件使用,例如格式化文本字段,用于跟踪组件的绑定属性的更改。此外,属性更改监听器以及可否决更改监听器还被构建工具用于监听约束属性的更改。有关更多信息,请参考属性课程以及JavaBeans教程中的内容。
下表列出了Swing组件以及它们支持的专门监听器,不包括所有Component
、Container
或JComponent
都支持的监听器。在许多情况下,事件直接从组件中触发。在其他情况下,事件从组件的数据或选择模型中触发。要了解您感兴趣的特定组件和监听器的详细信息,首先转到组件的操作指南部分,然后如果需要,再转到监听器的操作指南部分。