我应该在Swing中使用set Action还是actionListener?

时间:2013-06-19 21:23:42

标签: java swing actionlistener

我有一个涉及Java和Swing的半理论问题。 Swing组件包含两个响应用户的选项:setActionaddActionListener。它们分别属于ActionActionListener个对象。

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

2 个答案:

答案 0 :(得分:3)

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

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

IMHO

答案 1 :(得分: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.

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