|
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
- 一个包含键的 String
value
- 一个 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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。