com.vaadin.flow.component.button.

Class Button

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.button.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:

DrawerToggle

@Tag("vaadin-button") @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="24.7.1") @NpmPackage(value="@vaadin/button",version="24.7.1") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/button/src/vaadin-button.js") public class Button extends Component implements ClickNotifier<Button>, Focusable<Button>, HasAriaLabel, HasEnabled, HasPrefix, HasSize, HasStyle, HasSuffix, HasText, HasThemeVariant<ButtonVariant>, HasTooltip

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:

  • Constructor Details

  • Method Details

    • setText

      public void setText(String text)

      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.

      Specified by:

      setText in interface HasText

      Parameters:

      text - the text content to set, may be null to only remove existing text

    • setIcon

      public void setIcon(Component icon)

      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 and Image.

      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 be null to only remove the current icon, can't be a text-node

    • getIcon

      public Component 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" or slot="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 to src/main/resources/vaadin-featureflags.properties:

       com.vaadin.experimental.accessibleDisabledButtons = true
       
      This feature flag will also enable focus events and focus shortcuts for disabled buttons.

      Specified by:

      setEnabled in interface HasEnabled

      Parameters:

      enabled - if false then explicitly disables the object, if true then enables the object so that its state depends on parent

    • addFocusShortcut

      public ShortcutRegistration addFocusShortcut(Key key, KeyModifier... keyModifiers)

      Adds a shortcut which focuses the Component which implements Focusable interface. The shortcut's event listener is in global scope and the shortcut's lifecycle is tied to this 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:

       com.vaadin.experimental.accessibleDisabledButtons = true
       
      This feature flag will enable focus events and focus shortcuts for disabled buttons.

      Specified by:

      addFocusShortcut in interface Focusable<Button>

      Parameters:

      key - primary Key used to trigger the shortcut. Cannot be null.

      keyModifiers - KeyModifiers that need to be pressed along with the key for the shortcut to trigger

      Returns:

      ShortcutRegistration for configuring the shortcut and removing

    • addFocusListener

      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:

       com.vaadin.experimental.accessibleDisabledButtons = true
       
      This feature flag will enable focus events and focus shortcuts for disabled buttons.

      Specified by:

      addFocusListener in interface FocusNotifier<Button>

      Parameters:

      listener - the focus listener

      Returns:

      a registration that can be used to unregister the listener

      See Also:

    • addBlurListener

      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 interface BlurNotifier<Button>

      Parameters:

      listener - the blur listener

      Returns:

      a registration that can be used to unregister the listener

      See Also:

    • remove

      protected void remove(Component... components)

      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.