Swing 组件支持的监听器

原文: https://docs.oracle.com/javase/tutorial/uiswing/events/eventsandcomponents.html

通过查看可以在其上注册的事件监听器的类型,您可以了解组件可以触发的事件类型。例如,JComboBox类定义了这些监听器注册方法:

  • addActionListener
  • addItemListener
  • addPopupMenuListener

因此,除了从JComponent继承的监听器方法之外,组合框还支持 action,item 和弹出菜单监听器。

Swing 组件支持的监听器分为两类:

所有 Swing 组件支持的监听器

因为所有 Swing 组件都来自 AWT Component类,所以您可以在任何 Swing 组件上注册以下监听器:

component listener

Listens for changes in the component’s size, position, or visibility.

focus listener

Listens for whether the component gained or lost the keyboard focus.

key listener

Listens for key presses; key events are fired only by the component that has the current keyboard focus.

mouse listener

Listens for mouse clicks, mouse presses, mouse releases and mouse movement into or out of the component’s drawing area.

mouse-motion listener

Listens for changes in the mouse cursor’s position over the component.

mouse-wheel listener

Listens for mouse wheel movement over the component.

Hierarchy Listener

Listens for changes to a component’s containment hierarchy of changed events.

Hierarchy Bounds Listener

Listens for changes to a component’s containment hierarchy of moved and resized events.

所有 Swing 组件都来自 AWT Container类,但其中许多不用作容器。因此,从技术上讲,任何 Swing 组件都可以触发容器事件,它会通知监听器组件已添加到容器中或从容器中删除。然而,实际上,只有容器(例如面板和框架)和复合组件(例如组合框)通常会触发容器事件。

JComponent为另外三种监听器类型提供支持。您可以注册祖先监听器,以便在将容器的容器祖先添加到容器中或从容器中移除,隐藏,显示或移动时收到通知。此监听器类型是一个实现细节,它先于层次结构监听器。

另外两个监听器类型是 Swing 组件与 JavaBeans 规范的一致性的一部分。除此之外,这意味着 Swing 组件支持绑定和约束属性,并通知监听器属性的更改。 属性更改监听器侦听绑定属性的更改,并由多个 Swing 组件(如格式化文本字段)用于跟踪组件绑定属性的更改。此外,构建器工具使用属性更改监听器以及可否决更改监听器来侦听受约束属性的更改。有关更多信息,请参阅 JavaBeans 跟踪中的属性课程。

Swing 组件支持的其他监听器

下表列出了 Swing 组件及其支持的专用监听器,不包括所有ComponentContainerJComponent支持的监听器。在许多情况下,事件是直接从组件触发的。在其他情况下,事件是从组件的数据或选择模型触发的。要查找您感兴趣的特定组件和监听器的详细信息,请先查看组件操作方法部分,然后根据需要访问监听器操作方法部分。

This table lists Swing components with their specialized listeners | 零件 | 动作听众 | Caret Listener | 改变听众 | 文件监听可撤销编辑监听 | 项目监听 | 列表选择监听器 | 窗口监听器 | 其他类型的听众 | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | 按钮 |

checked

| |

checked

| |

checked

| | | | | 复选框 |

checked

| |

checked

| |

checked

| | | | | 颜色选择器 | | |

checked

| | | | | | | 组合框 |

checked

| | | |

checked

| | | | | 对话框 | | | | | | |

checked

| | | 编辑器面板 | |

checked

| |

checked

| | | | 超链接 | | 文件选择器 |

checked

| | | | | | | | | 格式化文本字段 |

checked

|

checked

| |

checked

| | | | | | 框架 | | | | | | |

checked

| | | 内部框架 | | | | | | | | 内部框架 | | 清单 | | | | | |

checked

| | 列表数据 | | 菜单 | | | | | | | | 菜单 | | 菜单项 |

checked

| |

checked

| |

checked

| | | 菜单键 菜单拖动鼠标 | | 选项面板 | | | | | | | | | | 密码字段 |

checked

|

checked

| |

checked

| | | | | | 弹出菜单 | | | | | | | | 弹出菜单 | | 进度条 | | |

checked

| | | | | | | 单选按钮 |

checked

| |

checked

| |

checked

| | | | | 滑块 | | |

checked

| | | | | | | 微调器 | | |

checked

| | | | | | | 标签式窗格 | | |

checked

| | | | | | | | | | | | |

checked

| | 表模型 表列模型 细胞编辑器 | | 文字区 | |

checked

| |

checked

| | | | | | 文字字段 |

checked

|

checked

| |

checked

| | | | | | 文字窗格 | |

checked

| |

checked

| | | | 超链接 | | 切换按钮 |

checked

| |

checked

| |

checked

| | | | | | | | | | | | | 树扩展 树将扩展 树模型 树选择 | | viewport (由 scrollpane 使用) | | |

checked

| | | | | |