Swing 组件支持的侦听器
您可以通过查看可以在组件上注册的事件侦听器的种类来判断组件可以触发哪些事件。例如,JComboBox
类定义了以下侦听器注册方法:
-
addActionListener
-
addItemListener
-
addPopupMenuListener
因此,组合框除了继承自JComponent
的侦听器方法外,还支持动作,项目和弹出菜单侦听器。
Swing 组件支持的侦听器分为两类:
所有 Swing 组件均支持的侦听器
由于所有 Swing 组件都来自 AWT Component
类,因此您可以在任何 Swing 组件上注册以下侦听器:
-
- 侦听组件的大小,位置或可见性的变化。
-
- 侦听组件是否获得键盘焦点。
-
- 监听按键;按键事件仅由具有当前键盘焦点的组件触发。
-
- 侦听鼠标单击,鼠标按下,鼠标释放以及鼠标移入或移出组件的绘图区域。
-
- 侦听鼠标光标在组件上的位置变化。
-
- 侦听鼠标滚轮在组件上的移动。
-
- 侦听对已更改事件的组件包含层次结构的更改。
-
- 侦听对移动和调整大小事件的组件包含层次结构的更改。
所有 Swing 组件都来自 AWT Container
类,但是其中许多组件未用作容器。因此,从技术上讲,任何 Swing 组件都可以触发container events,从而通知侦听器组件已添加到容器或从容器中删除。但是,实际上,只有容器(例如面板和框架)和复合组件(例如组合框)通常会引发容器事件。
JComponent
为其他三种侦听器类型提供支持。您可以注册ancestor listener,以在组件的容器祖先添加到容器或从容器中移除,隐藏,显示或移动时得到通知。此侦听器类型是在层次结构侦听器之前的实现详细信息。
其他两种侦听器类型是 Swing 组件符合 JavaBeans 规范的一部分。除其他外,这意味着 Swing 组件支持绑定和受约束的属性,并将属性的更改通知侦听器。 属性更改侦听器侦听对绑定属性的更改,并被多个 Swing 组件(例如格式化的文本字段)用来跟踪组件的绑定属性的更改。同样,构建器工具使用属性更改侦听器以及否决改变者来侦听受约束属性的更改。有关更多信息,请参考JavaBeans路径中的Properties类。
Swing 组件支持的其他侦听器
下表列出了 Swing 组件及其支持的专用侦听器,不包括所有Component
,Container
或JComponent
所支持的侦听器。在许多情况下,事件是直接从组件中触发的。在其他情况下,事件是从组件的数据或选择模型触发的。要查找您感兴趣的特定组件和侦听器的详细信息,请首先转到组件的“操作方法”部分,然后在必要时进入“侦听器的操作方法”部分。
此表列出了 Swing 组件及其专门的侦听器