|
JavaTM 2 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 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。