# 解决常见的事件处理问题

> 原文： [https://docs.oracle.com/javase/tutorial/uiswing/events/problems.html](https://docs.oracle.com/javase/tutorial/uiswing/events/problems.html)

本节讨论处理事件时可能遇到的问题。

**问题：**我正在尝试处理组件中的某些事件，但组件没有生成应该发生的事件。

*   首先，确保您注册了正确的侦听器来检测事件。查看另一种侦听器是否可以检测到您需要的事件类型。
*   确保在正确的对象上注册了侦听器。
*   您是否正确实现了事件处理程序？例如，如果扩展了适配器类，请确保使用了正确的方法签名。确保每个事件处理方法都是`public void`，名称拼写正确并且参数的类型正确。

**问题：**我的组合框没有生成焦点事件等低级事件。

*   组合框是复合组件 - 使用多个组件实现的组件。因此，组合框不会触发简单组件触发的低级事件。有关更多信息，请参阅[处理组合框](../components/combobox.html#listeners)上的事件。

**问题：**编辑器窗格（或文本窗格）的文档未触发文档事件。

*   从 URL 加载文本时，编辑器窗格或文本窗格的文档实例可能会更改。因此，您的侦听器可能正在侦听未使用文档上的事件。例如，如果使用之前使用纯文本加载的 HTML 加载编辑器窗格或文本窗格，则文档将更改为`HTMLDocument`实例。如果程序将文本动态加载到编辑器窗格或文本窗格中，请确保代码调整文档的可能更改（在新文档上重新注册文档侦听器，等等）。

如果在此列表中没有看到问题，请参阅[解决常见组件问题](../components/problems.html)。