Spec-Zone.ru › OpenJDK 25

Интерфейс 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
Свойство компонента Компоненты Ключ 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
См. также:
  • AbstractAction

Краткое описание полей

Модификатор и тип Поле Описание
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(Object sender)
Определяет, следует ли выполнить действие с указанным объектом-отправителем.
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.

Методы, объявленные в интерфейсе 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
См. также:
  • 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)
Получает одно из свойств этого объекта по соответствующему ключу.
Параметры:
key — String, содержащий ключ
Возвращает:
значение Object
См. также:
  • putValue(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, чтобы отключить его
См. также:
  • accept(Object)

isEnabled

boolean isEnabled()
Возвращает состояние включения Action. Если объект включен, любой связанный с ним компонент активен и может вызвать метод actionPerformed этого объекта.
Возвращает:
true, если Action включен
См. также:
  • accept(Object)

accept

default boolean accept(Object sender)
Определяет, следует ли выполнить действие с указанным объектом-отправителем. Значение sender может быть null. Метод должен возвращать false, если действие отключено.
Параметры:
sender — проверяемый объект; может быть null
Возвращает:
true, если действие следует выполнить с объектом-отправителем; если действие отключено, должно возвращаться false.
См. также:
  • isEnabled()
  • setEnabled(boolean)

addPropertyChangeListener

void addPropertyChangeListener(PropertyChangeListener listener)
Добавляет слушателя PropertyChange. Контейнеры и подключенные компоненты используют эти методы для регистрации интереса к объекту Action. При изменении его состояния включения или другого свойства зарегистрированные слушатели получают уведомление об изменении.
Параметры:
listener — объект PropertyChangeListener

removePropertyChangeListener

void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет слушателя PropertyChange.
Параметры:
listener — объект PropertyChangeListener
См. также:
  • addPropertyChangeListener(PropertyChangeListener)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API