原文: http://zetcode.com/vaadin/button/

Vaadin Button教程显示了如何使用 Vaadin Button组件。 Vaadin 按钮示例显示一个小的通知窗口。

Vaadin

Vaadin 是用于构建单页 Web 应用的流行 Java 框架。

Vaadin Button

Button用于触发某些动作。 当用户单击按钮时,会触发Button.ClickEvent。 通过onClick()addClickListener()方法添加了按钮事件处理器。

Vaadin Button示例

以下程序演示了 Vaadin Button组件的用法。 当我们单击按钮组件时,将显示一个通知窗口。

  1. $ tree
  2. .
  3. ├── nb-configuration.xml
  4. ├── pom.xml
  5. ├── README.md
  6. └── src
  7. ├── main
  8. ├── java
  9. └── com
  10. └── zetcode
  11. └── vaadinbuttonex
  12. └── MyUI.java
  13. └── webapp
  14. ├── META-INF
  15. └── context.xml
  16. ├── VAADIN
  17. └── themes
  18. └── mytheme
  19. ├── addons.scss
  20. ├── favicon.ico
  21. ├── mytheme.scss
  22. └── styles.scss
  23. └── WEB-INF
  24. └── test
  25. └── java

这是 Vaadin Web 应用的项目结构。 该项目是在 NetBeans 中创建的。 在 NetBeans 中,我们需要安装 NetBeans Vaadin 插件,然后创建一个新的 Vaadin Web 应用项目。 我们将使用MyUI.java文件。

MyUI.java

  1. package com.zetcode.vaadinbuttonex;
  2. import javax.servlet.annotation.WebServlet;
  3. import com.vaadin.annotations.Theme;
  4. import com.vaadin.annotations.Title;
  5. import com.vaadin.annotations.VaadinServletConfiguration;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.server.VaadinServlet;
  8. import com.vaadin.ui.Button;
  9. import com.vaadin.ui.HorizontalLayout;
  10. import com.vaadin.ui.Notification;
  11. import com.vaadin.ui.UI;
  12. @Theme("mytheme")
  13. @Title("Vaadin Button")
  14. public class MyUI extends UI {
  15. @Override
  16. protected void init(VaadinRequest vaadinRequest) {
  17. HorizontalLayout layout = new HorizontalLayout();
  18. Button button = new Button("Button");
  19. button.addClickListener(e -> {
  20. Notification.show("Button clicked");
  21. });
  22. layout.addComponents(button);
  23. layout.setMargin(true);
  24. setContent(layout);
  25. }
  26. @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
  27. @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
  28. public static class MyUIServlet extends VaadinServlet {
  29. }
  30. }

MyUI是应用入口点。 UI 可以表示浏览器窗口(或选项卡),也可以表示嵌入 Vaadin 应用的 HTML 页面的某些部分。

  1. @Theme("mytheme")

使用@Theme批注,我们指定应用的主题。 系统会自动为我们创建一个默认的mytheme

  1. @Title("Vaadin Button")

使用@Title批注,设置浏览器窗口的标题。

  1. HorizontalLayout layout = new HorizontalLayout();

Vaadin 中的组件放置在布局管理器中。 HorizontalLayout将组件连续放置。 由于我们只有一个Button组件,因此选择哪个布局管理器都没关系。

  1. Button button = new Button("Button");

创建了一个新的Button组件。 将按钮的标签指定为参数。

  1. button.addClickListener(e -> {
  2. Notification.show("Button clicked");
  3. });

addClickListener()方法添加了按钮事件处理器。 在方法的主体中,我们称为Notification.show(),它在页面中间显示一个小的通知窗口。

  1. layout.addComponents(button);

使用addComponents()方法将按钮添加到布局。

  1. layout.setMargin(true);

使用setMargin()方法,我们在按钮组件周围创建了一些边距。

  1. setContent(layout);

最后,将布局添加到 UI。

  1. @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
  2. @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
  3. public static class MyUIServlet extends VaadinServlet {
  4. }

从此代码摘录中可以看到,Vaadin 框架是基于 Java Servlet 技术构建的。

在本教程中,我们展示了如何使用 Vaadin Button组件。 您可能也对相关教程感兴趣: Vaadin CheckBox教程Vaadin DateField教程Vaadin ComboBox教程Vaadin TextArea教程Vaadin 滑块教程Java 教程