Интерфейс Action
- Все суперинтерфейсы:
- ActionListener, EventListener
- Все известные реализующие классы:
- AbstractAction, BasicDesktopPaneUI.CloseAction, BasicDesktopPaneUI.MaximizeAction, BasicDesktopPaneUI.MinimizeAction, BasicDesktopPaneUI.NavigateAction, BasicDesktopPaneUI.OpenAction, BasicFileChooserUI.ApproveSelectionAction, BasicFileChooserUI.CancelSelectionAction, BasicFileChooserUI.ChangeToParentDirectoryAction, BasicFileChooserUI.GoHomeAction, BasicFileChooserUI.NewFolderAction, BasicFileChooserUI.UpdateAction, BasicInternalFrameTitlePane.CloseAction, BasicInternalFrameTitlePane.IconifyAction, BasicInternalFrameTitlePane.MaximizeAction, BasicInternalFrameTitlePane.MoveAction, BasicInternalFrameTitlePane.RestoreAction, BasicInternalFrameTitlePane.SizeAction, BasicSliderUI.ActionScroller, BasicTreeUI.TreeCancelEditingAction, BasicTreeUI.TreeHomeAction, BasicTreeUI.TreeIncrementAction, BasicTreeUI.TreePageAction, BasicTreeUI.TreeToggleAction, BasicTreeUI.TreeTraverseAction, DefaultEditorKit.BeepAction, DefaultEditorKit.CopyAction, DefaultEditorKit.CutAction, DefaultEditorKit.DefaultKeyTypedAction, DefaultEditorKit.InsertBreakAction, DefaultEditorKit.InsertContentAction, DefaultEditorKit.InsertTabAction, DefaultEditorKit.PasteAction, HTMLEditorKit.HTMLTextAction, HTMLEditorKit.InsertHTMLTextAction, MetalFileChooserUI.DirectoryComboBoxAction, StyledEditorKit.AlignmentAction, StyledEditorKit.BoldAction, StyledEditorKit.FontFamilyAction, StyledEditorKit.FontSizeAction, StyledEditorKit.ForegroundAction, StyledEditorKit.ItalicAction, StyledEditorKit.StyledTextAction, StyledEditorKit.UnderlineAction, TextAction
public interface Action extends ActionListener
Интерфейс Action предоставляет полезное расширение интерфейса ActionListener в тех случаях, когда к одной и той же функциональности может получить доступ несколько элементов управления.
Помимо метода actionPerformed, определенного интерфейсом ActionListener, этот интерфейс позволяет приложению определить в одном месте:
- Одну или несколько текстовых строк, описывающих функцию. Эти строки могут использоваться, например, для отображения всплывающего текста для кнопки или для установки текста в пункте меню.
- Один или несколько значков, изображающих функцию. Эти значки могут быть использованы для изображений в элементе управления меню или для составных элементов в более сложном пользовательском интерфейсе.
- Состояние активности/неактивности функциональности. Вместо того, чтобы отдельно отключать пункт меню и кнопку на панели инструментов, приложение может отключить функцию, реализующую этот интерфейс. Все компоненты, зарегистрированные как слушатели изменения состояния, затем знают, как отключить генерацию событий для этого элемента и соответствующим образом изменить отображение.
Этот интерфейс может быть добавлен к существующему классу или использован для создания адаптера (как правило, путём наследования от AbstractAction). Объект Action может быть добавлен к нескольким контейнерам, поддерживающим Action, и подключен к компонентам, совместимым с Action. Элементы управления графического интерфейса пользователя могут быть активированы или деактивированы все сразу путём вызова метода setEnabled объекта Action.
Обратите внимание, что реализации Action склонны быть более затратными в плане памяти, чем типичный ActionListener, который не предлагает преимущества централизованного управления функциональностью и трансляции изменений свойств. По этой причине вы должны позаботиться о том, чтобы использовать Action только там, где необходимы их преимущества, а в других случаях использовать простые ActionListener.
Компоненты Swing, поддерживающие Action
Многие компоненты Swing имеют свойство Action. Когда Action устанавливается на компоненте, происходят следующие действия:
Actionдобавляется в качествеActionListenerк компоненту.- Компонент настраивает некоторые свои свойства для соответствия
Action. - Компонент устанавливает
PropertyChangeListenerнаAction, чтобы компонент мог изменять свои свойства для отражения изменений свойствAction.
В следующей таблице описаны свойства, используемые компонентами Swing , которые поддерживают Actions. В таблице кнопка относится к любому подклассу AbstractButton, который включает не только JButton, но и классы, такие как JMenuItem. Если не указано иное, значение свойства null в Action (или в Action, который является null ) приводит к тому, что соответствующее свойство кнопки устанавливается в значение 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. JToolBar.add(Action) устанавливает свойство в значение true , если Action имеет значение, отличное от null для LARGE_ICON_KEY или SMALL_ICON. |
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 |
Все подклассы JMenuItem, за исключением JMenu. |
ACCELERATOR_KEY |
|
selected |
JToggleButton, JCheckBox, JRadioButton, JCheckBoxMenuItem и JRadioButtonMenuItem |
SELECTED_KEY |
Компоненты, которые учитывают это свойство, используют значение только если оно равно non-null. Например, если вы установите Action, который имеет значение null для SELECTED_KEY на JToggleButton, JToggleButton не будет обновлять своё состояние выбора никоим образом. Аналогично, всякий раз, когда состояние выбора JToggleButton изменяется, оно устанавливает значение только обратно на Action , если Action имеет значение non-null для SELECTED_KEY. Компоненты, которые учитывают это свойство, синхронизируют своё состояние выбора с этим свойством. Если один и тот же Action используется с несколькими компонентами, все компоненты синхронизируют своё состояние выбора с этим свойством. Взаимоисключающие кнопки, такие как JToggleButton в ButtonGroup, позволяют выбрать только одну из кнопок. Поэтому не используйте один и тот же Action, который определяет значение для свойства SELECTED_KEY, с несколькими взаимно исключающими кнопками. |
JPopupMenu, JToolBar и JMenu предоставляют удобные методы для создания компонента и установки Action на соответствующем компоненте. Для получения дополнительной информации обратитесь к каждому из этих классов.
Action использует PropertyChangeListener для информирования слушателей о том, что Action изменилось. Спецификация бинов указывает, что имя свойства null может использоваться для указания того, что изменилось несколько значений. По умолчанию компоненты Swing, которые принимают Action , не обрабатывают такое изменение. Чтобы указать, что Swing должен обрабатывать null в соответствии со спецификацией бинов, установите системное свойство swing.actions.reconfigureOnNull в значение String true.
- См. также:
AbstractAction
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static String |
ACCELERATOR_KEY Ключ, используемый для хранения |
static String |
ACTION_COMMAND_KEY Ключ, используемый для определения команды |
static String |
DEFAULT В настоящее время не используется. |
static String |
DISPLAYED_MNEMONIC_INDEX_KEY Ключ, используемый для хранения |
static String |
LARGE_ICON_KEY Ключ, используемый для хранения |
static String |
LONG_DESCRIPTION Ключ, используемый для хранения более подробного |
static String |
MNEMONIC_KEY Ключ, используемый для хранения |
static String |
NAME Ключ, используемый для хранения |
static String |
SELECTED_KEY Ключ, используемый для хранения |
static String |
SHORT_DESCRIPTION Ключ, используемый для хранения краткого |
static String |
SMALL_ICON Ключ, используемый для хранения небольшого |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener) Добавляет слушателя |
Object |
getValue(String key) Получает одно из свойств этого объекта, используя соответствующий ключ. |
boolean |
isEnabled() Возвращает состояние включения |
void |
putValue(String key,
Object value) Устанавливает одно из свойств этого объекта, используя соответствующий ключ. |
void |
removePropertyChangeListener(PropertyChangeListener listener) Удаляет слушателя |
void |
setEnabled(boolean b) Устанавливает состояние включения |
Методы, унаследованные от интерфейса java.awt.event.ActionListener
actionPerformed Поля
DEFAULT
static final String DEFAULT
В настоящее время не используется.
- См. также:
- Значения константных полей
NAME
static final String NAME
Ключ, используемый для хранения имени String действия, используемого для меню или кнопки.
- См. также:
- Значения константных полей
SHORT_DESCRIPTION
static final String SHORT_DESCRIPTION
Ключ, используемый для хранения краткого описания String действия, используемого для всплывающей подсказки.
- См. также:
- Значения константных полей
LONG_DESCRIPTION
static final String LONG_DESCRIPTION
Ключ, используемый для хранения более длинного String описания действия, который может использоваться для контекстно-зависимой справки.
- См. также:
- Значения константных полей
SMALL_ICON
static final String SMALL_ICON
Ключ, используемый для хранения небольшого Icon, например ImageIcon. Обычно используется с меню, например JMenuItem.
Если одно и то же Action используется с меню и кнопками, обычно указываются как SMALL_ICON, так и LARGE_ICON_KEY. Меню будет использовать SMALL_ICON, а кнопка — LARGE_ICON_KEY.
- См. также:
- Значения константных полей
ACTION_COMMAND_KEY
static final String ACTION_COMMAND_KEY
Ключ, используемый для определения команды String для ActionEvent, которая будет создана, когда Action будет уведомлен в результате нахождения в Keymap, связанном с JComponent.
- См. также:
- Значения константных полей
ACCELERATOR_KEY
static final String ACCELERATOR_KEY
Ключ, используемый для хранения KeyStroke для использования в качестве ускорителя действия.
- С тех пор как:
- 1.3
- См. также:
- Значения константных полей
MNEMONIC_KEY
static final String MNEMONIC_KEY
Ключ, используемый для хранения Integer символа, соответствующего одному из кодов KeyEvent клавиш. Значение обычно используется для указания мнемоники. Например: myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_A) устанавливает мнемонику myAction в 'a', в то время как myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.getExtendedKeyCodeForChar('?')) устанавливает мнемонику myAction в кириллическую букву "Еф".
- С тех пор как:
- 1.3
- См. также:
- Значения константных полей
SELECTED_KEY
static final String SELECTED_KEY
Ключ, используемый для хранения Boolean, соответствующего состоянию выбора. Обычно используется только для компонентов, имеющих осмысленное состояние выбора. Например, JRadioButton и JCheckBox используют это, но экземпляры JMenu нет.
Это свойство отличается от других тем, что его читает и устанавливает компонент. Например, если Action прикреплен к JCheckBox, состояние выбора JCheckBox будет установлено из состояния выбора Action. Если пользователь щелкнет по JCheckBox, состояние выбора JCheckBox и Action будут оба обновлены.
Примечание: значение этого поля имеет префикс 'Swing', чтобы избежать возможных коллизий с существующими Actions.
- С тех пор как:
- 1.6
- См. также:
- Значения константных полей
DISPLAYED_MNEMONIC_INDEX_KEY
static final String DISPLAYED_MNEMONIC_INDEX_KEY
Ключ, используемый для хранения Integer, соответствующего индексу в тексте (определенному свойством NAME), в котором должна отображаться метка мнемоники. Если значение этого свойства больше или равно длине текста, оно будет рассматриваться как -1.
Примечание: значение этого поля имеет префикс 'Swing', чтобы избежать возможных коллизий с существующими Actions.
- С тех пор как:
- 1.6
- См. также:
-
AbstractButton.setDisplayedMnemonicIndex(int), Значения константных полей
LARGE_ICON_KEY
static final String LARGE_ICON_KEY
Ключ, используемый для хранения Icon. Обычно используется кнопками, такими как JButton и JToggleButton.
Если одно и то же Action используется с меню и кнопками, обычно указываются как SMALL_ICON, так и LARGE_ICON_KEY. Меню будет использовать SMALL_ICON, а кнопка — LARGE_ICON_KEY.
Примечание: значение этого поля имеет префикс 'Swing', чтобы избежать возможных коллизий с существующими Actions.
- С тех пор как:
- 1.6
- См. также:
- Значения константных полей
Методы
getValue
Object getValue(String key)
Получает одно из свойств этого объекта, используя соответствующий ключ.
- См. также:
putValue(java.lang.String, java.lang.Object)
putValue
void putValue(String key,
Object value) Устанавливает одно из свойств этого объекта, используя соответствующий ключ. Если значение изменилось, слушателям отправляется уведомление PropertyChangeEvent.
- Параметры:
-
key- ключString -
value- значениеObject
setEnabled
void setEnabled(boolean b)
Устанавливает состояние включения Action. В включенном состоянии любой компонент, связанный с этим объектом, активен и может вызывать метод actionPerformed этого объекта. Если значение изменилось, слушателям отправляется уведомление PropertyChangeEvent.
- Параметры:
-
b- true для включения этогоAction, false для отключения
isEnabled
boolean isEnabled()
Возвращает состояние включения Action. В включенном состоянии любой компонент, связанный с этим объектом, активен и может вызывать метод actionPerformed этого объекта.
- Возвращает:
- true, если этот
Actionвключен
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
Добавляет слушателя PropertyChange изменений свойств. Контейнеры и прикрепленные компоненты используют эти методы для регистрации интереса к этому объекту Action. Когда состояние включения или другое свойство меняется, зарегистрированные слушатели получают информацию о изменении.
- Параметры:
-
listener- объектPropertyChangeListener
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет слушателя PropertyChange изменений свойств.
- Параметры:
-
listener- объектPropertyChangeListener - См. также:
addPropertyChangeListener(java.beans.PropertyChangeListener)
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.