什么是更好用:Action vs ActionListener?

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

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

如果您需要跨组件共享function,则首选Action 。 来自文档

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

但也说

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