Spec-Zone.ru › OpenJDK 17

Интерфейс 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, поддерживающими 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. Например, если вы установите 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 изменился. Спецификация Beans указывает, что имя свойства null может использоваться для обозначения того, что изменилось несколько значений. По умолчанию, компоненты Swing, принимающие Action , не обрабатывают такое изменение. Чтобы указать Swing на то, что он должен обрабатывать null в соответствии со спецификацией Beans, установите системную переменную swing.actions.reconfigureOnNull в значение String true.

С момента:
1.2
См. также:
  • AbstractAction

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

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(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.

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
См. также:
  • 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 - ключ
Возвращает:
значение свойства
См. также:
  • putValue(java.lang.String, java.lang.Object)

putValue

void putValue(String key, Object value)
Устанавливает одно из свойств этого объекта с использованием связанного ключа. Если значение изменилось, слушателям отправляется уведомление.
Параметры:
key - ключ
value - значение свойства

setEnabled

void setEnabled(boolean b)
Устанавливает состояние активности объекта. При включенном состоянии любой компонент, связанный с этим объектом, активен и может вызвать метод actionPerformed этого объекта. Если значение изменилось, слушателям отправляется уведомление.
Параметры:
b - true, чтобы включить объект, false — чтобы отключить
См. также:
  • accept(java.lang.Object)

isEnabled

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

accept

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

addPropertyChangeListener

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

removePropertyChangeListener

void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет PropertyChange прослушиватель.
Параметры:
listener - объект PropertyChangeListener
См. также:
  • addPropertyChangeListener(java.beans.PropertyChangeListener)

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/Action.html

Spec-Zone.ru

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