空AncestorListener导致方法调用

时间:2017-06-30 08:12:28

标签: java swing debugging profiling

我对我的java应用程序的行为感到有点困惑:)

  • JPanel有一个AncestorListener,如果添加了祖先,则调用方法x()
  • JPanel作为第一个标签添加到JScrollPane
  • JScrollPane有另一个 AncestorListener

如果滚动面板可见,则方法x()执行两次

  • 通过添加面板
  • 触发x()的第一次调用
  • 通过显示面板
  • 触发x()的第二次调用

令人困惑的部分是,第二次调用是由ScrollPane的AncestorListener引起的,即使侦听器具有实现。 如果我删除了监听器,则没有第二个呼叫。

任何人都可以解释具有空实现的侦听器如何导致方法调用,或者我如何调试/分析此问题?

提前谢谢

祝你好运

0 个答案:

没有答案