2

我有一个涉及 Java 和 Swing 的半理论问题。Swing 组件包含两个选项来响应用户:setActionaddActionListener. 这些分别与ActionActionListener对象有关。

我的问题是:我应该使用哪种方法setActionaddActionListener它们彼此有何不同?

4

2 回答 2

3

个人偏好是尽可能使用Action(这样做并不总是有意义)。主要原因是:

  • 简化代码。您最终不会得到一个actionPerformed包含多个 if-else 语句的 100 行长的方法。Action包含对特定类的特定操作 。
  • 它们是自包含的(这与前一点有关)。配置 UI 元素所需的所有信息都是自包含的Action,使设置更容易和更快,更不用说一致了;)
  • 它们是可重复使用的、菜单、按钮、键绑定、文本字段。
  • 它们是可扩展的。您可以为组创建动作的基本概念并扩展基础以提供单个动作的实现要求(我经常使用键绑定)

恕我直言

于 2013-06-19T21:34:11.767 回答
2

根据http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html

An Action object is an action listener that provides not only action-event handling, but also centralized handling of the state of action-event-firing components such as tool bar buttons, menu items, common buttons, and text fields. The state that an action can handle includes text, icon, mnemonic, enabled, and selected status.

查看链接的文档和这个答案,似乎使用的一个原因Actions可能是尝试在多个对象上使用相同的操作

于 2013-06-19T21:31:17.707 回答