com.vaadin.flow.component.button.
Class Button
All Implemented Interfaces:
AttachNotifier
, BlurNotifier<Button>
, ClickNotifier<Button>
, DetachNotifier
, Focusable<Button>
, FocusNotifier<Button>
, HasAriaLabel
, HasElement
, HasEnabled
, HasSize
, HasStyle
, HasText
, HasTheme
, HasPrefix
, HasSuffix
, HasThemeVariant<ButtonVariant>
, HasTooltip
, Serializable
Direct Known Subclasses:
The Button component allows users to perform actions. It comes in several different style variants, and supports icons in addition to text labels.
Author:
Vaadin Ltd
See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier
BlurNotifier.BlurEvent<C extends Component>
Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier
FocusNotifier.FocusEvent<C extends Component>
Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasText
HasText.WhiteSpace
-
Constructor Summary
ConstructorsConstructorDescriptionButton()
Default constructor.
Creates a button with an icon inside.
Button
(Component icon, ComponentEventListener<ClickEvent<Button>> clickListener) Creates a button with an icon and a listener for click events.
Creates a button with a text inside.
Creates a button with a text and an icon inside.
Button
(String text, ComponentEventListener<ClickEvent<Button>> clickListener) Creates a button with a text and a listener for click events.
Button
(String text, Component icon, ComponentEventListener<ClickEvent<Button>> clickListener) Create a button with a text, an icon and a listener for click events.
-
Method Summary
Modifier and TypeMethodDescriptionAdd a listener to blur DOM events.
Add a listener to focus DOM events.
addFocusShortcut
(Key key, KeyModifier... keyModifiers) void
click()
Simulates a click on this button on the server side if it is enabled.
void
Executes a click on this button at the client-side.
getIcon()
Gets the component that is defined as the icon of this button.
boolean
Get the state for the auto-focus property of the button.
boolean
Gets whether the button is set to be disabled when clicked.
boolean
Gets whether this button's icon is positioned after it's text content or the other way around.
protected void
Removes the given child components from this component.
void
setAutofocus
(boolean autofocus) Set the button to be input focused when the page loads.
void
setDisableOnClick
(boolean disableOnClick) Sets whether the button should be disabled when clicked.
void
setEnabled
(boolean enabled) Sets the button explicitly disabled or enabled.
void
Sets the given component as the icon of this button.
void
setIconAfterText
(boolean iconAfterText) Sets whether this button's icon should be positioned after it's text content or the other way around.
void
Sets the given string as the text content of this component.
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisible
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
Methods inherited from interface com.vaadin.flow.component.ClickNotifier
addClickListener, addClickShortcut, addDoubleClickListener, addSingleClickListener
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
Methods inherited from interface com.vaadin.flow.component.Focusable
blur, focus, getTabIndex, setTabIndex
Methods inherited from interface com.vaadin.flow.component.HasAriaLabel
getAriaLabel, getAriaLabelledBy, setAriaLabel, setAriaLabelledBy
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled
Methods inherited from interface com.vaadin.flow.component.shared.HasPrefix
getPrefixComponent, setPrefixComponent
Methods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
Methods inherited from interface com.vaadin.flow.component.shared.HasSuffix
getSuffixComponent, setSuffixComponent
Methods inherited from interface com.vaadin.flow.component.HasText
getText, getWhiteSpace, setWhiteSpace
Methods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
Methods inherited from interface com.vaadin.flow.component.shared.HasThemeVariant
addThemeVariants, removeThemeVariants
Methods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipText
-
Constructor Details
-
Button
public Button()Default constructor. Creates an empty button.
-
Button
Creates a button with a text inside.
Parameters:
text
- the text inside the buttonSee Also:
-
Button
Creates a button with an icon inside.
Parameters:
icon
- the icon inside the buttonSee Also:
-
Button
Creates a button with a text and an icon inside.
Use
setIconAfterText(boolean)
to change the order of the text and the icon.Parameters:
text
- the text inside the buttonicon
- the icon inside the buttonSee Also:
-
Button
Creates a button with a text and a listener for click events.
Parameters:
text
- the text inside the buttonclickListener
- the event listener for click eventsSee Also:
-
Button
Creates a button with an icon and a listener for click events.
Parameters:
icon
- the icon inside the buttonclickListener
- the event listener for click eventsSee Also:
-
Button
public Button(String text, Component icon, ComponentEventListener<ClickEvent<Button>> clickListener) Create a button with a text, an icon and a listener for click events.
Parameters:
text
- the text inside the buttonicon
- the icon inside the buttonclickListener
- the event listener for click eventsSee Also:
-
-
Method Details
-
setText
Sets the given string as the text content of this component.
This method removes any existing text-content and replaces it with the given text.
This method also sets or removes this button's
theme=icon
attribute based on whether this button contains only an icon after this operation or not. -
setIcon
Sets the given component as the icon of this button.
Even though you can use almost any component as an icon, some good options are
Icon
andImage
.Use
setIconAfterText(boolean)
to change the icon's position relative to the button's text content.This method also sets or removes this button's
theme=icon
attribute based on whether this button contains only an icon after this operation or not.Parameters:
icon
- component to be used as an icon, may benull
to only remove the current icon, can't be a text-node -
getIcon
Gets the component that is defined as the icon of this button.
Returns:
the icon of this button, or
null
if the icon is not set -
setIconAfterText
public void setIconAfterText(boolean iconAfterText) Sets whether this button's icon should be positioned after it's text content or the other way around.
At the element-level, this method determines whether to set
slot="prefix"
orslot="suffix"
attribute to the icon.Parameters:
iconAfterText
- whether the icon should be positioned after the text content or not -
isIconAfterText
public boolean isIconAfterText()Gets whether this button's icon is positioned after it's text content or the other way around.
Returns:
true
if this button positions it's icon after it's text content,false
otherwise -
click
public void click()Simulates a click on this button on the server side if it is enabled. Calling this method executes all registered click listeners on the server side, but does not execute possible client side registered listeners.
See Also:
-
clickInClient
public void clickInClient()Executes a click on this button at the client-side. Calling this method behaves the same as if the user would have clicked on the button.
-
setAutofocus
public void setAutofocus(boolean autofocus) Set the button to be input focused when the page loads.
Parameters:
autofocus
- the boolean value to set -
isAutofocus
public boolean isAutofocus()Get the state for the auto-focus property of the button.
This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.
Returns:
the
autofocus
property from the button -
setDisableOnClick
public void setDisableOnClick(boolean disableOnClick) Sets whether the button should be disabled when clicked.
When set to
true
, the button will be immediately disabled on the client-side when clicked, preventing further clicks until re-enabled from the server-side.Parameters:
disableOnClick
- whether the button should be disabled when clicked -
isDisableOnClick
public boolean isDisableOnClick()Gets whether the button is set to be disabled when clicked.
Returns:
whether button is set to be disabled on click
-
setEnabled
public void setEnabled(boolean enabled) Sets the button explicitly disabled or enabled. When disabled, the button is rendered as "dimmed" and prevents all user interactions (mouse and keyboard).
Since disabled buttons are not focusable and cannot react to hover events by default, it can cause accessibility issues by making them entirely invisible to assistive technologies, and prevents the use of Tooltips to explain why the action is not available. This can be addressed with the feature flag
accessibleDisabledButtons
, which makes disabled buttons focusable and hoverable, while preventing them from being triggered. To enable this feature flag, add the following line tosrc/main/resources/vaadin-featureflags.properties
:
This feature flag will also enable focus events and focus shortcuts for disabled buttons.com.vaadin.experimental.accessibleDisabledButtons = true
Specified by:
setEnabled
in interfaceHasEnabled
Parameters:
enabled
- iffalse
then explicitly disables the object, iftrue
then enables the object so that its state depends on parent -
addFocusShortcut
Adds a shortcut which focuses the
Component
which implementsFocusable
interface. The shortcut's event listener is in global scope and the shortcut's lifecycle is tied tothis
component.Use the returned
ShortcutRegistration
to fluently configure the shortcut.By default, focus shortcuts are only active when the button is enabled. To make disabled buttons also focusable, enable the following feature flag in
src/main/resources/vaadin-featureflags.properties
:
This feature flag will enable focus events and focus shortcuts for disabled buttons.com.vaadin.experimental.accessibleDisabledButtons = true
Specified by:
addFocusShortcut
in interfaceFocusable<Button>
Parameters:
key
- primaryKey
used to trigger the shortcut. Cannot be null.keyModifiers
-KeyModifiers
that need to be pressed along with thekey
for the shortcut to triggerReturns:
ShortcutRegistration
for configuring the shortcut and removing -
addFocusListener
public Registration addFocusListener(ComponentEventListener<FocusNotifier.FocusEvent<Button>> listener) Add a listener to focus DOM events.
By default, buttons are only focusable in the enabled state. To make disabled buttons also focusable, enable the following feature flag in
src/main/resources/vaadin-featureflags.properties
:
This feature flag will enable focus events and focus shortcuts for disabled buttons.com.vaadin.experimental.accessibleDisabledButtons = true
Specified by:
addFocusListener
in interfaceFocusNotifier<Button>
Parameters:
listener
- the focus listenerReturns:
a registration that can be used to unregister the listener
See Also:
-
addBlurListener
public Registration addBlurListener(ComponentEventListener<BlurNotifier.BlurEvent<Button>> listener) Add a listener to blur DOM events.
By default, buttons are only focusable in the enabled state. To make disabled buttons also focusable, enable the following feature flag in
src/main/resources/vaadin-featureflags.properties
:com.vaadin.experimental.accessibleDisabledButtons = true
Specified by:
addBlurListener
in interfaceBlurNotifier<Button>
Parameters:
listener
- the blur listenerReturns:
a registration that can be used to unregister the listener
See Also:
-
remove
Removes the given child components from this component.
Parameters:
components
- The components to remove.Throws:
IllegalArgumentException
- if any of the components is not a child of this component.
-