Интерфейс 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. После этого элементы управления GUI можно активировать или деактивировать одновременно, вызвав метод 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.
| Свойство компонента | Компоненты | Ключ 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. Например, если задать для JToggleButton объект Action, у которого значение SELECTED_KEY равно null, JToggleButton никак не изменит свое выбранное состояние. Аналогично, при каждом изменении выбранного состояния JToggleButton значение будет записано обратно в Action только в том случае, если SELECTED_KEY имеет значение non-null в Action. Компоненты, учитывающие это свойство, синхронизируют с ним свое выбранное состояние. Если один и тот же Action используется несколькими компонентами, все они синхронизируют с этим свойством свое выбранное состояние. Взаимоисключающие кнопки, например JToggleButton в ButtonGroup, позволяют выбрать только одну из кнопок. Поэтому не используйте один и тот же Action, задающий значение свойства SELECTED_KEY, для нескольких взаимоисключающих кнопок. |
JPopupMenu, JToolBar и JMenu предоставляют удобные методы для создания компонента и задания Action соответствующего компонента. Дополнительные сведения см. в описании каждого из этих классов.
Action использует PropertyChangeListener для оповещения слушателей об изменении Action. Спецификация beans указывает, что имя свойства null может использоваться для обозначения изменения нескольких значений. По умолчанию компоненты Swing, принимающие Action, не обрабатывают такие изменения. Чтобы указать Swing обрабатывать null в соответствии со спецификацией beans, задайте для системного свойства swing.actions.reconfigureOnNull значение true типа String.
- Начиная с версии:
- 1.2
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default boolean |
accept |
Определяет, следует ли выполнить действие с указанным объектом-отправителем. |
void |
addPropertyChangeListener |
Добавляет слушателя PropertyChange. |
Object |
getValue |
Получает одно из свойств этого объекта по соответствующему ключу. |
boolean |
isEnabled() |
Возвращает состояние включения Action. |
void |
putValue |
Задает одно из свойств этого объекта по соответствующему ключу. |
void |
removePropertyChangeListener |
Удаляет слушателя PropertyChange. |
void |
setEnabled |
Задает состояние включения Action. |
Методы, объявленные в интерфейсе 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) задает мнемонический символ 'a' для myAction, а 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)
sender может быть null. Метод должен возвращать false, если действие отключено.- Параметры:
-
sender— проверяемый объект; может быть null - Возвращает:
-
true, если действие следует выполнить с объектом-отправителем; если действие отключено, должно возвращаться false. - См. также:
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
PropertyChange. Контейнеры и подключенные компоненты используют эти методы для регистрации интереса к объекту Action. При изменении его состояния включения или другого свойства зарегистрированные слушатели получают уведомление об изменении.- Параметры:
-
listener— объектPropertyChangeListener
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange.- Параметры:
-
listener— объектPropertyChangeListener - См. также:
© 1993, 2025, 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/25/docs/api/java.desktop/javax/swing/Action.html