Интерфейс 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.
| Свойство компонента | Компоненты | Ключ 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 со значением 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- строка, содержащая ключ - Возвращает:
- значение
Object - См. также:
putValue
void putValue(String key, Object value)
- Параметры:
-
key- строка, содержащая ключ -
value- значениеObject
setEnabled
void setEnabled(boolean b)
Action. В активном состоянии любой компонент, связанный с этим объектом, активен и может вызвать метод actionPerformed этого объекта. Если значение изменилось, уведомляются слушатели.- Параметры:
-
b- true для активацииAction, false для деактивации - См. также:
isEnabled
boolean isEnabled()
Action. В активном состоянии любой компонент, связанный с этим объектом, активен и может вызвать метод actionPerformed этого объекта.- Возвращает:
- true, если
Actionактивен - См. также:
accept
default boolean accept(Object sender)
null. Метод должен возвращать false, если действие отключено.- Параметры:
-
sender- проверяемый объект, может быть null - Возвращает:
-
true, если действие должно выполняться с объектом отправителя, должно быть false, если действие отключено. - См. также:
Добавить слушателя изменений свойств
void addPropertyChangeListener(PropertyChangeListener listener)
- Параметры:
-
listener- объект слушателя изменений свойств
Удалить слушателя изменений свойств
void removePropertyChangeListener(PropertyChangeListener listener)
- Параметры:
-
listener- объект слушателя изменений свойств - См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/Action.html