|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
public interface Action
Action 接口提供 ActionListener 接口的一个有用扩展,以便若干控件访问相同的功能。
除了 ActionListener 接口定义的 actionPerformed 方法之外,此接口还允许应用程序在一个位置定义:
可以将此接口添加到现有类中,或者用它创建一个适配器(通常通过子类化 AbstractAction 来实现)。然后可以将 Action 对象添加到多个可感知 Action 的容器中,并连接到可容纳 Action 的组件。然后可以通过调用 Action 对象的 setEnabled 方法立刻激活或取消激活 GUI 控件。
注意,Action 实现在存储方面的开销比典型的 ActionListener 要高,但后者不具有集中控制功能和广播属性更改的优点。因此,应该注意只在需要这些优点的地方使用 Action,在别处使用 ActionListener 即可。
Action 的 Swing 组件
许多 Swing 的组件都具有 Action 属性。在组件上设置 Action 时,会发生以下几种情况:
Action 被作为 ActionListener 添加到组件。
Action。
Action 上安装 PropertyChangeListener,这样组件可更改其属性以反映 Action 属性中的更改。
下表描述了支持 Action 的 Swing 组件所使用的属性。在该表中,按钮 指的是任何 AbstractButton 子类,它不仅包括 JButton,而且包括一些类(如 JMenuItem)。除非另行声明,否则 Action 中的 null 属性值(或者为 null 的 Action)将导致按钮的对应属性被设置为 null。
| 组件属性 | 组件 | 动作键 | 注意事项 |
|---|---|---|---|
enabled
| 所有 | isEnabled 方法
| |
toolTipText
| 所有 | SHORT_DESCRIPTION
| |
actionCommand
| 所有 | ACTION_COMMAND_KEY
| |
mnemonic
| 所有按钮 | MNEMONIC_KEY
| null 值或 Action 将导致按钮的 mnemonic 属性被设置为 '\0'。
|
text
| 所有按钮 | NAME
| 如果不想按钮的文本反映 Action 的文本,可以将 hideActionText 属性设置为 true。如果 hideActionText 为 true,那么设置 Action 会将按钮的文本更改为 null,忽略对 NAME 的任何更改。hideActionText 对于通常仅显示 Icon 的工具栏按钮很有用。如果对于 LARGE_ICON_KEY 或 SMALL_ICON,Action 具有非 null 值,那么 JToolBar.add(Action) 会将属性设置为 true。
|
displayedMnemonicIndex
| 所有按钮 | DISPLAYED_MNEMONIC_INDEX_KEY
| 如果 DISPLAYED_MNEMONIC_INDEX_KEY 的值超出文本边界,则忽略它。当调用 setAction 时,如果取自 Action 的值为 null,则不更新显示的助记符索引。在对 DISPLAYED_MNEMONIC_INDEX_KEY 的任意后续更改中,null 被视为 -1。
|
icon
| 除 JCheckBox、JToggleButton 和 JRadioButton 之外的所有按钮。
| LARGE_ICON_KEY 或 SMALL_ICON
| JMenuItem 子类只使用 SMALL_ICON。所有其他按钮将使用 LARGE_ICON_KEY;如果该值为 null,则它们使用 SMALL_ICON。
|
accelerator
| 除 JMenu 之外的所有 JMenuItem 子类。
| ACCELERATOR_KEY
| |
selected
| JToggleButton、JCheckBox、JRadioButton、JCheckBoxMenuItem 和 JRadioButtonMenuItem
| SELECTED_KEY
| 如果遵守此属性的组件为非 null,那么它只使用该值。例如,如果设置了一个 Action,它在 JToggleButton 上的 SELECTED_KEY 为 null 值,那么该 JToggleButton 将不会以任何方式更新其选定状态。类似地,如果对于 SELECTED_KEY,Action 具有非 null 值,那么每次 JToggleButton 的选定状态发生更改时,它都会将值设置回 Action。
遵守此属性的组件保持其选定状态与此属性同步。当将同一个 Action 用于多个组件时,所有组件都保持其选定状态与此属性同步。互斥的按钮(如 ButtonGroup 中的 JToggleButton)将强制选择其中的一个按钮。因此,在用于多个互斥按钮时,不要使用相同的 Action 定义 SELECTED_KEY 属性的值。
|
JPopupMenu、JToolBar 和 JMenu 都提供便捷方法来创建组件和在相应的组件上设置 Action。有关更多信息,请参阅这些类。
Action 使用 PropertyChangeListener 来通知侦听器 Action 发生了更改。bean 规范指示 null 属性名称可用于指示多个值发生了更改。默认情况下,带有 Action 的 Swing 组件不处理这样的更改。要指示 Swing 应该根据 bean 规范处理 null 情况,请将系统属性 swing.actions.reconfigureOnNull 设置为 String 值 true。
AbstractAction| 字段摘要 | |
|---|---|
static String |
ACCELERATOR_KEY
用来存储将用作动作加速器的 KeyStroke 的键。 |
static String |
ACTION_COMMAND_KEY
用来确定 ActionEvent 的命令 String 的键,ActionEvent 是在 Action 因驻留在与 JComponent 关联的 Keymap 中而被通知时所创建的。 |
static String |
DEFAULT
当前未使用。 |
static String |
DISPLAYED_MNEMONIC_INDEX_KEY
用来存储对应于文本(由 NAME 属性标识)索引的 Integer 值的键,助记符的装饰应在该文本中呈现。 |
static String |
LARGE_ICON_KEY
用来存储 Icon 的键。 |
static String |
LONG_DESCRIPTION
用来存储动作的较长 String 描述的键,用于上下文相关的帮助文件。 |
static String |
MNEMONIC_KEY
用来存储对应于一个 KeyEvent 键代码的 Integer 值的键。 |
static String |
NAME
用来存储动作的 String 名称的键,用于菜单或按钮。 |
static String |
SELECTED_KEY
用来存储对应于选定状态的 Boolean 值的键。 |
static String |
SHORT_DESCRIPTION
用来存储动作的简短 String 描述的键,用于工具提示文本。 |
static String |
SMALL_ICON
用来存储小型 Icon(比如 ImageIcon)的键。 |
| 方法摘要 | |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
添加一个 PropertyChange 侦听器。 |
Object |
getValue(String key)
使用关联的键获取此对象的一个属性。 |
boolean |
isEnabled()
返回 Action 的启用状态。 |
void |
putValue(String key,
Object value)
使用关联的键设置此对象的一个属性。 |
void |
removePropertyChangeListener(PropertyChangeListener listener)
移除一个 PropertyChange 侦听器。 |
void |
setEnabled(boolean b)
设置 Action 的启用状态。 |
| 从接口 java.awt.event.ActionListener 继承的方法 |
|---|
actionPerformed |
| 字段详细信息 |
|---|
static final String DEFAULT
static final String NAME
String 名称的键,用于菜单或按钮。
static final String SHORT_DESCRIPTION
String 描述的键,用于工具提示文本。
static final String LONG_DESCRIPTION
String 描述的键,用于上下文相关的帮助文件。
static final String SMALL_ICON
Icon(比如 ImageIcon)的键。该键通常用于菜单,比如 JMenuItem。
如果将同一个 Action 用于菜单和按钮,通常应同时指定 SMALL_ICON 和 LARGE_ICON_KEY。菜单将使用 SMALL_ICON,按钮将使用 LARGE_ICON_KEY。
static final String ACTION_COMMAND_KEY
ActionEvent 的命令 String 的键,ActionEvent 是在 Action 因驻留在与 JComponent 关联的 Keymap 中而被通知时所创建的。
static final String ACCELERATOR_KEY
KeyStroke 的键。
static final String MNEMONIC_KEY
KeyEvent 键代码的 Integer 值的键。该值通常用于指定助记符。例如:myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_A) 将 myAction 的助记符设置为 'a'。
static final String SELECTED_KEY
Boolean 值的键。该键通常只用于具有有意义的选择状态的组件。例如:JRadioButton 和 JCheckBox 使用此键,但是 JMenu 的实例不使用。
该属性不同于其他属性,因为它由组件读取也由组件设置。例如,如果 Action 连接到 JCheckBox,那么 JCheckBox 的选定状态将根据 Action 的选定状态设置。如果用户在 JCheckBox 上单击,JCheckBox 的选定状态和 Action 都将被更新。
注:此字段的值以 'Swing' 为前缀,以避免与现有 Action 的可能冲突。
static final String DISPLAYED_MNEMONIC_INDEX_KEY
NAME 属性标识)索引的 Integer 值的键,助记符的装饰应在该文本中呈现。如果此属性的值大于等于该文本的长度,则它将被视为 -1。
注:此字段的值以 'Swing' 为前缀,以避免与现有 Action 的可能冲突。
AbstractButton.setDisplayedMnemonicIndex(int),
常量字段值static final String LARGE_ICON_KEY
Icon 的键。该键通常由按钮(如 JButton 和 JToggleButton)使用。
如果将同一个 Action 用于菜单和按钮,通常应同时指定 SMALL_ICON 和 LARGE_ICON_KEY。菜单将使用 SMALL_ICON,按钮将使用 LARGE_ICON_KEY。
注:此字段的值以 'Swing' 为前缀,以避免与现有 Action 的可能冲突。
| 方法详细信息 |
|---|
Object getValue(String key)
putValue(java.lang.String, java.lang.Object)
void putValue(String key,
Object value)
PropertyChangeEvent 发送到侦听器。
key - 一个包含键的 Stringvalue - 一个 Object 值void setEnabled(boolean b)
Action 的启用状态。在启用时,任何与此对象关联的组件都被激活,并且都能触发此对象的 actionPerformed 方法。如果值发生了更改,则将一个 PropertyChangeEvent 发送到侦听器。
b - 为 true 表示启用此 Action;为 false 表示禁用它boolean isEnabled()
Action 的启用状态。在启用时,任何与此对象关联的组件都被激活,并且都能触发此对象的 actionPerformed 方法。
Action,则返回 truevoid addPropertyChangeListener(PropertyChangeListener listener)
PropertyChange 侦听器。容器和附属组件使用这些方法注册,以侦听此 Action 对象。当启用状态或其他属性发生更改时,已注册的侦听器会收到更改通知。
listener - 一个 PropertyChangeListener 对象void removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange 侦听器。
listener - 一个 PropertyChangeListener 对象addPropertyChangeListener(java.beans.PropertyChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。