【发布时间】:2017-12-03 19:24:13
【问题描述】:
我对 Java 还很陌生,所以可能会以完全错误的方式进行处理。是否有实现addActionLister 方法的对象接口,这样我就可以使用这样的测试来确定是否可以向其添加ActionListener。
if (someObject instanceof WhatShouldThisBe){
someObject.addActionListener(...);
}
我尝试了各种方法,但找不到有效的方法,也找不到如何在文档 (javadoc) 中搜索该方法。
我试图通过迭代同时向表单中的所有组件添加动作侦听器,myForm.getComponents() 问题是,它提供了一个 Component 对象数组,而 Component 类没有 addActionListener 方法(至少,无论如何,根据我的 IDE)。
提前感谢您的帮助。
【问题讨论】:
-
if (someObject.class.getDeclaredMethod("addActionListener", new Class[] { ActionListener.class }) != null) -
这听起来像是一个 XY 问题。你想达到什么目的?你为什么要尝试向任意组件添加动作侦听器,甚至不知道它们是什么?
-
我没有投票,但我支持@JBNizet——你的问题是XY Problem,你的问题的真正答案是你正在做的事情完全错误的方式,您不应该让 GUI 组件结构决定控件如何添加侦听器。
-
感谢您的 cmets @JBNizet 和
Hovercraft,您说得对。我的目标是添加一个可以在表单的所有字段中使用的热键,但是我懒惰地认为我可以遍历它们而不是跟踪已创建的内容。
标签: java interface actionlistener