什么是更好用:Action vs ActionListener?

Eng*_*uad 8 java user-interface swing action actionlistener

我自己,我总是使用ActionListener摇摆事件处理程序(例如按钮单击),它是我在大多数swing应用程序中看到的最常见的监听器.

但是,这里的一些Swing专业人员在stackoverflow中经常建议使用Action而不是ActionListener.这样做有什么好处?

Rei*_*eus 10

Action,如果你需要跨组件共享功能是首选.来自文档

如果您有两个或多个执行相同功能的组件,请考虑使用Action对象来实现该功能.

但也说

Action对象是一个动作侦听器,它不仅提供动作事件处理,还集中处理动作事件触发组件的状态,例如工具栏按钮,菜单项,公共按钮和文本字段.操作可以处理的状态包括文本,图标,助记符,已启用和已选择状态.

  • @ Eng.Fouad:动作还有ActionListeners找不到的其他好东西,包括能够保存图标,助记键,描述以及保存你想要的任何价值键. (5认同)
  • 如何创建一个动作监听器,并通过`addActionListener()`向多个挥杆组件添加相同的引用呢?是不是一回事? (2认同)
  • @ Eng.Fouad:这也是从库中导出功能的好方法,例如[http://stackoverflow.com/a/14202720/230513]. (2认同)