Vaadin Platform (vaadin-core) - Core component of the Vaadin web framework platform
UI components for building Vaadin applications: inputs, displays, navigation, dialogs, and HTML elements.
See also: Quick Component Reference in the main index for an alphabetical lookup table.
Form input components for collecting user data, including text fields, checkboxes, radio buttons, combo boxes, date pickers, and file uploads.
Components in this section: Button, TextField, TextArea, PasswordField, EmailField, NumberField, IntegerField, Checkbox, CheckboxGroup, RadioButtonGroup, ComboBox, MultiSelectComboBox, Select, DatePicker, TimePicker, DateTimePicker, Upload
class Button extends Component {
Button();
Button(String text);
Button(String text, ComponentEventListener<ClickEvent<Button>> listener);
Button(Component icon);
Button(Component icon, ComponentEventListener<ClickEvent<Button>> listener);
void setText(String text);
void setIcon(Component icon);
void setIconAfterText(boolean iconAfterText);
void setAutofocus(boolean autofocus);
void setDisableOnClick(boolean disableOnClick);
void addThemeVariants(ButtonVariant... variants);
void removeThemeVariants(ButtonVariant... variants);
Registration addClickListener(ComponentEventListener<ClickEvent<Button>> listener);
}
enum ButtonVariant implements ThemeVariant {
LUMO_PRIMARY, LUMO_SECONDARY, LUMO_TERTIARY,
LUMO_SUCCESS, LUMO_ERROR, LUMO_CONTRAST,
LUMO_SMALL, LUMO_LARGE, LUMO_ICON
}class TextField extends Component implements HasValue<TextField, String> {
TextField();
TextField(String label);
TextField(String label, String placeholder);
TextField(String label, String initialValue, String placeholder);
void setLabel(String label);
void setPlaceholder(String placeholder);
void setValue(String value);
String getValue();
void setClearButtonVisible(boolean clearButtonVisible);
void setRequired(boolean required);
void setRequiredIndicatorVisible(boolean requiredIndicatorVisible);
void setValueChangeMode(ValueChangeMode mode);
void setValueChangeTimeout(int valueChangeTimeout);
void setMaxLength(int maxLength);
void setMinLength(int minLength);
void setPattern(String pattern);
void setErrorMessage(String errorMessage);
void setHelperText(String helperText);
void setPrefixComponent(Component component);
void setSuffixComponent(Component component);
Registration addValueChangeListener(ValueChangeListener<? super ComponentValueChangeEvent<TextField, String>> listener);
}class TextArea extends Component implements HasValue<TextArea, String> {
TextArea();
TextArea(String label);
TextArea(String label, String placeholder);
void setLabel(String label);
void setPlaceholder(String placeholder);
void setValue(String value);
String getValue();
void setMaxLength(int maxLength);
void setMinLength(int minLength);
void setHeight(String height);
Registration addValueChangeListener(ValueChangeListener<? super ComponentValueChangeEvent<TextArea, String>> listener);
}class PasswordField extends Component implements HasValue<PasswordField, String> {
PasswordField();
PasswordField(String label);
void setLabel(String label);
void setRevealButtonVisible(boolean revealButtonVisible);
}
class EmailField extends Component implements HasValue<EmailField, String> {
EmailField();
EmailField(String label);
void setPattern(String pattern);
}
class NumberField extends Component implements HasValue<NumberField, Double> {
NumberField();
NumberField(String label);
void setMin(double min);
void setMax(double max);
void setStep(double step);
void setHasControls(boolean hasControls);
}
class IntegerField extends Component implements HasValue<IntegerField, Integer> {
IntegerField();
IntegerField(String label);
void setMin(int min);
void setMax(int max);
void setStep(int step);
void setHasControls(boolean hasControls);
}class Checkbox extends Component implements HasValue<Checkbox, Boolean> {
Checkbox();
Checkbox(String label);
Checkbox(String label, boolean initialValue);
void setLabel(String label);
void setValue(Boolean value);
Boolean getValue();
void setIndeterminate(boolean indeterminate);
Registration addValueChangeListener(ValueChangeListener<? super ComponentValueChangeEvent<Checkbox, Boolean>> listener);
}
class CheckboxGroup<T> extends Component implements HasValue<CheckboxGroup<T>, Set<T>> {
CheckboxGroup();
CheckboxGroup(String label);
void setLabel(String label);
void setItems(Collection<T> items);
void setItems(T... items);
void setItemLabelGenerator(ItemLabelGenerator<T> itemLabelGenerator);
void setValue(Set<T> value);
Set<T> getValue();
}class RadioButtonGroup<T> extends Component implements HasValue<RadioButtonGroup<T>, T> {
RadioButtonGroup();
RadioButtonGroup(String label);
void setLabel(String label);
void setItems(Collection<T> items);
void setItems(T... items);
void setItemLabelGenerator(ItemLabelGenerator<T> itemLabelGenerator);
void setValue(T value);
T getValue();
}class ComboBox<T> extends Component implements HasValue<ComboBox<T>, T> {
ComboBox();
ComboBox(String label);
void setLabel(String label);
void setItems(Collection<T> items);
void setItems(T... items);
void setItemLabelGenerator(ItemLabelGenerator<T> generator);
void setDataProvider(DataProvider<T, String> dataProvider);
void setValue(T value);
T getValue();
void setAllowCustomValue(boolean allowCustomValue);
void setClearButtonVisible(boolean clearButtonVisible);
void setPlaceholder(String placeholder);
Registration addValueChangeListener(ValueChangeListener<? super ComponentValueChangeEvent<ComboBox<T>, T>> listener);
Registration addCustomValueSetListener(ComponentEventListener<CustomValueSetEvent<ComboBox<T>>> listener);
}
class MultiSelectComboBox<T> extends Component implements HasValue<MultiSelectComboBox<T>, Set<T>> {
MultiSelectComboBox();
MultiSelectComboBox(String label);
void setItems(Collection<T> items);
void setValue(Set<T> value);
Set<T> getValue();
}
class Select<T> extends Component implements HasValue<Select<T>, T> {
Select();
Select(String label);
void setLabel(String label);
void setItems(Collection<T> items);
void setItems(T... items);
void setItemLabelGenerator(ItemLabelGenerator<T> generator);
void setValue(T value);
T getValue();
void setPlaceholder(String placeholder);
}class DatePicker extends Component implements HasValue<DatePicker, LocalDate> {
DatePicker();
DatePicker(String label);
DatePicker(String label, LocalDate initialDate);
void setLabel(String label);
void setValue(LocalDate value);
LocalDate getValue();
void setMin(LocalDate min);
void setMax(LocalDate max);
void setPlaceholder(String placeholder);
void setWeekNumbersVisible(boolean weekNumbersVisible);
}
class TimePicker extends Component implements HasValue<TimePicker, LocalTime> {
TimePicker();
TimePicker(String label);
void setLabel(String label);
void setValue(LocalTime value);
LocalTime getValue();
void setMin(LocalTime min);
void setMax(LocalTime max);
void setStep(Duration step);
}
class DateTimePicker extends Component implements HasValue<DateTimePicker, LocalDateTime> {
DateTimePicker();
DateTimePicker(String label);
void setLabel(String label);
void setValue(LocalDateTime value);
LocalDateTime getValue();
void setDatePlaceholder(String placeholder);
void setTimePlaceholder(String placeholder);
}class Upload extends Component {
Upload();
Upload(Receiver receiver);
void setReceiver(Receiver receiver);
void setAcceptedFileTypes(String... acceptedFileTypes);
void setMaxFiles(int maxFiles);
void setMaxFileSize(int maxFileSize);
void setDropLabel(String dropLabel);
void setUploadButton(Component uploadButton);
Registration addSucceededListener(ComponentEventListener<SucceededEvent> listener);
Registration addFailedListener(ComponentEventListener<FailedEvent> listener);
Registration addFileRejectedListener(ComponentEventListener<FileRejectedEvent> listener);
}
interface Receiver {
OutputStream receiveUpload(String filename, String mimeType);
}
class MemoryBuffer implements Receiver {
MemoryBuffer();
OutputStream receiveUpload(String filename, String mimeType);
InputStream getInputStream();
String getFileName();
}Examples:
Button save = new Button("Save", e -> Notification.show("Saved!"));
save.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
TextField name = new TextField("Name");
name.setRequired(true);
name.setValueChangeMode(ValueChangeMode.EAGER);
ComboBox<String> country = new ComboBox<>("Country");
country.setItems("USA", "UK", "Canada");
DatePicker date = new DatePicker("Birth Date");
date.setMax(LocalDate.now());
MemoryBuffer buffer = new MemoryBuffer();
Upload upload = new Upload(buffer);
upload.setAcceptedFileTypes("image/*");
upload.addSucceededListener(e -> {
InputStream is = buffer.getInputStream();
// Process file
});Components in this section: Grid, ProgressBar, Avatar, Icon
Related: For data binding with Grid, see Data Integration.
class Grid<T> extends Component {
Grid();
Grid(Class<T> beanType);
Column<T> addColumn(ValueProvider<T, ?> valueProvider);
Column<T> addColumn(String propertyName);
void setColumns(String... propertyNames);
void setItems(Collection<T> items);
void setDataProvider(DataProvider<T, ?> dataProvider);
void setSelectionMode(SelectionMode mode);
Registration addSelectionListener(SelectionListener<Grid<T>, T> listener);
}
interface Grid.Column<T> {
Column<T> setHeader(String header);
Column<T> setSortable(boolean sortable);
Column<T> setAutoWidth(boolean autoWidth);
Column<T> setWidth(String width);
}
class ProgressBar extends Component {
ProgressBar();
ProgressBar(double min, double max);
void setValue(double value);
void setIndeterminate(boolean indeterminate);
}
class Avatar extends Component {
Avatar();
Avatar(String name);
void setName(String name);
void setImage(String url);
void addThemeVariants(AvatarVariant... variants);
}
class Icon extends Component {
Icon(VaadinIcon icon);
void setColor(String color);
void setSize(String size);
}Examples:
Grid<Person> grid = new Grid<>(Person.class);
grid.setColumns("name", "email", "age");
grid.setItems(people);
grid.addSelectionListener(e -> e.getFirstSelectedItem()
.ifPresent(p -> Notification.show("Selected: " + p.getName())));
Grid<Product> products = new Grid<>();
products.addColumn(Product::getName).setHeader("Name");
products.addColumn(p -> "$" + p.getPrice()).setHeader("Price");
products.setDataProvider(DataProvider.fromCallbacks(
q -> productService.fetch(q.getOffset(), q.getLimit()).stream(),
q -> productService.count()
));Components in this section: Tabs, Tab, TabSheet, MenuBar, MenuItem, SideNav, SideNavItem
Related: For routing navigation, see Core Framework.
class Tabs extends Component {
Tabs();
Tabs(Tab... tabs);
void add(Tab... tabs);
void setSelectedTab(Tab tab);
Tab getSelectedTab();
Registration addSelectedChangeListener(ComponentEventListener<SelectedChangeEvent> listener);
}
class Tab extends Component {
Tab();
Tab(String label);
void setLabel(String label);
}
class TabSheet extends Component {
TabSheet();
Tab add(String label, Component content);
void setSelectedTab(Tab tab);
}
class MenuBar extends Component {
MenuBar();
MenuItem addItem(String text);
MenuItem addItem(String text, ComponentEventListener<ClickEvent<MenuItem>> listener);
}
interface MenuItem {
SubMenu getSubMenu();
void setText(String text);
}
class SideNav extends Component {
SideNav();
void addItem(SideNavItem item);
}
class SideNavItem extends Component {
SideNavItem(String label);
SideNavItem(String label, Class<? extends Component> navigationTarget);
void addItem(SideNavItem item);
}Examples:
Tabs tabs = new Tabs();
tabs.add(new Tab("Home"), new Tab("Profile"), new Tab("Settings"));
tabs.addSelectedChangeListener(e -> handleTabChange(e.getSelectedTab()));
TabSheet tabSheet = new TabSheet();
tabSheet.add("Overview", overviewLayout);
tabSheet.add("Details", detailsLayout);
SideNav nav = new SideNav();
nav.addItem(new SideNavItem("Dashboard", DashboardView.class));
nav.addItem(new SideNavItem("Products", ProductsView.class));Components in this section: Dialog, ConfirmDialog, Notification
class Dialog extends Component {
Dialog();
void add(Component... components);
void open();
void close();
void setModal(boolean modal);
void setHeaderTitle(String title);
Registration addOpenedChangeListener(ComponentEventListener<OpenedChangeEvent<Dialog>> listener);
}
class ConfirmDialog extends Component {
ConfirmDialog();
ConfirmDialog(String header, String text, String confirmText,
ComponentEventListener<ConfirmEvent> confirmListener);
void setHeader(String header);
void setText(String text);
void open();
}
class Notification extends Component {
Notification();
Notification(String text);
Notification(String text, int duration, Position position);
void setPosition(Position position);
static Notification show(String text);
static Notification show(String text, int duration, Position position);
}
enum Notification.Position {
TOP_START, TOP_CENTER, TOP_END,
MIDDLE,
BOTTOM_START, BOTTOM_CENTER, BOTTOM_END
}Examples:
Dialog dialog = new Dialog();
dialog.setHeaderTitle("Confirmation");
dialog.add(new Paragraph("Are you sure?"));
dialog.getFooter().add(
new Button("Cancel", e -> dialog.close()),
new Button("OK", e -> { /* handle */ dialog.close(); })
);
dialog.open();
ConfirmDialog confirm = new ConfirmDialog("Delete Item",
"Are you sure?", "Delete",
e -> Notification.show("Deleted"),
"Cancel", e -> {});
confirm.open();
Notification.show("Success!", 3000, Notification.Position.TOP_CENTER);Components in this section: Div, Span, H1-H6, Paragraph, Anchor, Image
Note: These are Java wrappers for standard HTML elements. For more HTML elements, see the Vaadin HTML Components API.
class Div extends HtmlContainer {
Div();
Div(Component... components);
}
class Span extends HtmlContainer {
Span();
Span(String text);
}
class H1 extends HtmlComponent {
H1();
H1(String text);
}
// H2, H3, H4, H5, H6 follow same pattern
class Paragraph extends HtmlComponent {
Paragraph();
Paragraph(String text);
}
class Anchor extends HtmlComponent {
Anchor();
Anchor(String href, String text);
void setHref(String href);
}
class Image extends HtmlComponent {
Image();
Image(String src, String alt);
void setSrc(String src);
}Examples:
Div container = new Div();
container.add(new H1("Title"), new Paragraph("Content"));
Anchor link = new Anchor("https://vaadin.com", "Visit Vaadin");
Image logo = new Image("images/logo.png", "Logo");Install with Tessl CLI
npx tessl i tessl/maven-com-vaadin--vaadin-core