|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- ---
- title: Button
- order: 14
- layout: page
- ---
-
- [[components.button]]
- = Button
-
- ifdef::web[]
- [.sampler]
- image:{live-demo-image}[alt="Live Demo", link="http://demo.vaadin.com/sampler/#ui/interaction/button"]
- endif::web[]
-
- The [classname]#Button# component is normally used for initiating some action,
- such as finalizing input in forms. When the user clicks a button, a
- [classname]#Button.ClickEvent# is fired, which can be handled by adding a __click listener__
- using either the [methodname]#onClick()# or the [methodname]#addClickListener()# method.
-
- [[figure.component.button.basic]]
- .A [classname]#Button#
- image::img/button-example1.png[width=35%, scaledwidth=60%]
-
- You can handle button clicks most easily with an anonymous class or a lambda expression, as follows:
-
- [source, java]
- ----
- Button button = new Button("Do not press this button");
-
- button.addClickListener(clickEvent ->
- Notification.show("Do not press this button again"));
- ----
-
- The listener can also be given in the constructor, which is often perhaps simpler.
-
-
- == CSS Style Rules
-
-
- [source, css]
- ----
- .v-button { }
- .v-button-wrap { }
- .v-button-caption { }
- ----
-
- A button has an overall [literal]#++v-button++# style. The caption has
- [literal]#++v-button-caption++# style. There is also an intermediate wrap
- element, which may help in styling in some cases.
-
- The button component has many style variants in the Valo theme, as illustrated in <<figure.component.button.valostyles>>.
- The styles are defined in the [classname]#ValoTheme# class.
-
- [[figure.component.button.valostyles]]
- .Button in different styles of the Valo theme
- image::img/button-valo-styles.png[width=70%, scaledwidth=100%]
|