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 组件及其支持的专用侦听器,不包括所有ComponentContainerJComponent所支持的侦听器。在许多情况下,事件是直接从组件中触发的。在其他情况下,事件是从组件的数据或选择模型触发的。要查找您感兴趣的特定组件和侦听器的详细信息,请首先转到组件的“操作方法”部分,然后在必要时进入“侦听器的操作方法”部分。

此表列出了 Swing 组件及其专门的侦听器

ComponentAction ListenerCaret ListenerChange ListenerDocument Listener,
不可编辑的监听器
Item Listener列表选择监听器Window Listener其他类型的侦听器
buttonchecked checked checked
check boxchecked checked checked
color chooser checked
combo boxchecked checked
dialog checked
editor pane checked checked hyperlink
file chooserchecked
格式化文本字段checkedchecked checked
frame checked
internal frame internal frame
list checked list data
menu menu
menu itemchecked checked checked menu key
菜单拖动鼠标
option pane
password fieldcheckedchecked checked
popup menu popup menu
progress bar checked
radio buttonchecked checked checked
slider checked
spinner checked
tabbed pane checked
table checked table model
表列模型
cell editor
text area checked checked
text fieldcheckedchecked checked
text pane checked checked hyperlink
toggle buttonchecked checked checked
tree tree expansion
树会扩大
tree model
tree selection
viewport
(由scrollpane使用)
checked