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