Интерфейс 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. Элементы управления пользовательского интерфейса могут быть активированы или деактивированы все сразу, вызвав метод Action объекта setEnabled.
Обратите внимание, что реализации интерфейса Action склонны к большему объёму памяти, чем типичный ActionListener, который не предлагает преимуществ централизованного управления функционалом и передачи изменений свойств. По этой причине следует использовать интерфейс Action только там, где это необходимо, и использовать простые ActionListener в других случаях.
Компоненты Swing, поддерживающие Action
Многие компоненты Swing имеют свойство Action. Когда для компонента устанавливается значение Action, происходит следующее:
Actionдобавляется как слушательActionListenerк компоненту.- Компонент настраивает некоторые свои свойства в соответствии со значением
Action. - Компонент устанавливает слушателя
PropertyChangeListenerнаActionтак, чтобы компонент мог изменять свои свойства в ответ на изменения свойствAction.
В следующей таблице описаны свойства, используемые компонентами Swing, которые поддерживают Swing, поддерживающими Actions. В таблице, кнопка обозначает любой подкласс AbstractButton, в который входят не только JButton, но и классы, такие как JMenuItem. Если не указано иное, значение свойства null в объекте Action (или Action, который является null приводит к тому, что соответствующее свойство кнопки устанавливается в null.
| Свойство компонента | Компоненты | Ключ Action | Примечания |
|---|---|---|---|
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.
- С момента:
- 1.2
- См. также:
Краткое описание полей
| Modifier and Type | Field | Description |
|---|---|---|
static final String |
ACCELERATOR_KEY |
Ключ, используемый для хранения KeyStroke, который используется в качестве акселератора для действия. |
static final String |
ACTION_COMMAND_KEY |
Ключ, используемый для определения команды String для ActionEvent, которая будет создана, когда Action будет уведомлён как результат нахождения в Keymap, связанном с JComponent. |
static final String |
DEFAULT |
В настоящее время не используется. |
static final String |
DISPLAYED_MNEMONIC_INDEX_KEY |
Ключ, используемый для хранения Integer, который соответствует индексу в тексте (определённому свойством NAME), в котором должна отображаться декорация для мнемоники. |
static final String |
LARGE_ICON_KEY |
Ключ, используемый для хранения Icon. |
static final String |
LONG_DESCRIPTION |
Ключ, используемый для хранения более подробного описания String действия, который может использоваться для контекстной справки. |
static final String |
MNEMONIC_KEY |
Ключ, используемый для хранения Integer, который соответствует одному из кодов клавиш KeyEvent. |
static final String |
NAME |
Ключ, используемый для хранения имени String действия, используемого для меню или кнопки. |
static final String |
SELECTED_KEY |
Ключ, используемый для хранения Boolean, соответствующего выбранному состоянию. |
static final String |
SHORT_DESCRIPTION |
Ключ, используемый для хранения краткого описания String действия, используемого для текста всплывающей подсказки. |
static final String |
SMALL_ICON |
Ключ, используемый для хранения небольшого Icon, такого как ImageIcon. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
default boolean |
accept |
Определяет, должно ли действие выполняться с указанным объектом отправителя. |
void |
addPropertyChangeListener |
Добавляет слушателя PropertyChange. |
Object |
getValue |
Получает одно из свойств этого объекта, используя соответствующий ключ. |
boolean |
isEnabled() |
Возвращает состояние включения/выключения Action. |
void |
putValue |
Устанавливает одно из свойств этого объекта, используя соответствующий ключ. |
void |
removePropertyChangeListener |
Удаляет слушателя PropertyChange. |
void |
setEnabled |
Устанавливает состояние включения/выключения Action. |
Methods declared in interface 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
- См. также:
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)
- Параметры:
-
key-String, содержащий ключ - Возвращает:
- значение
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активирован - См. также:
accept
default boolean accept(Object sender)
null. Метод должен возвращать false, если действие отключено.- Параметры:
-
sender- проверяемый объект, может быть null - Возвращает:
-
true, если действие должно быть выполнено с объектом-отправителем, должно быть false, если действие отключено. - См. также:
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
PropertyChange. Контейнеры и прикреплённые компоненты используют эти методы для регистрации интереса к этому объекту Action. При изменении состояния активации или других свойств зарегистрированные слушатели информируются об изменении.- Параметры:
-
listener- объектPropertyChangeListener
Удалить обработчик изменения свойства
void removePropertyChangeListener(PropertyChangeListener listener)
- Параметры:
-
listener- объектPropertyChangeListener - См. также:
© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/Action.html