Java API说,
“在多个控件可以访问相同功能的情况下,Action接口为ActionListener接口提供了有用的扩展。”
我可以对自定义内部类侦听器执行相同操作。我错过了什么?我确实看到了Action的一些好处(图标,描述,启用状态)。
答案 0 :(得分:2)
一般来说,在大多数情况下,我更喜欢Action
而不是ActionListener
。
除了提供可以应用于按钮和键绑定的自包含,可重用的概念之外,我发现它可以生成更清晰的代码。
我知道很多人更喜欢使用n个深度actionPeformed
语句的内部类或非常大的if-else
语句,但对我来说Action
提供了一个更容易维护的API和可更新的,
在我不需要显示触发ActionListener
事件的对象的情况下,我仍然使用actionPerformed
,例如Swing Timer
对于我来说,你想要维护一个自包含工作单元,需要向用户显示和/或想要设计一系列抽象可操作元素,Action
是首选方法