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

在 Vaadin TextArea教程中,我们学习 Vaadin TextArea组件的基础。 Vaadin TextArea示例显示TextArea组件中网页的内容。 该示例使用 Jsoup 库读取网页内容。

Vaadin

Vaadin 是一种流行的 Java Web 开发框架,用于构建单页 Web 应用。

Vaadin TextArea

TextArea是显示纯文本的多行文本区域组件。

Vaadin TextArea示例

以下程序演示了 Vaadin TextArea组件的用法。 它从网页中读取 HTML 内容,该内容在附近的TextField组件中指定。

  1. <dependency>
  2. <groupId>org.jsoup</groupId>
  3. <artifactId>jsoup</artifactId>
  4. <version>1.9.2</version>
  5. </dependency>

我们需要将jsoup依赖项添加到 Maven POM 文件中。 Jsoup 是一种流行的 Java HTML 解析器。

MyUI.java

  1. package com.zetcode.main;
  2. import javax.servlet.annotation.WebServlet;
  3. import com.vaadin.annotations.Theme;
  4. import com.vaadin.annotations.VaadinServletConfiguration;
  5. import com.vaadin.server.VaadinRequest;
  6. import com.vaadin.server.VaadinServlet;
  7. import com.vaadin.ui.Button;
  8. import com.vaadin.ui.TextArea;
  9. import com.vaadin.ui.TextField;
  10. import com.vaadin.ui.UI;
  11. import com.vaadin.ui.VerticalLayout;
  12. import com.zetcode.service.ReadPage;
  13. @Theme("mytheme")
  14. public class MyUI extends UI {
  15. @Override
  16. protected void init(VaadinRequest vaadinRequest) {
  17. VerticalLayout layout = new VerticalLayout();
  18. TextArea area = new TextArea();
  19. area.setWidth("650");
  20. area.setHeight("350");
  21. TextField field = new TextField("Enter an URL");
  22. field.setWidth("350");
  23. Button button = new Button("Submit");
  24. button.addClickListener(e -> {
  25. String content = ReadPage.read(field.getValue());
  26. area.setValue(content);
  27. });
  28. layout.addComponents(area, field, button);
  29. layout.setMargin(true);
  30. layout.setSpacing(true);
  31. setContent(layout);
  32. }
  33. @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
  34. @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
  35. public static class MyUIServlet extends VaadinServlet {
  36. }
  37. }

在代码示例中,我们具有三个组件:TextAreaTextFieldButton

  1. VerticalLayout layout = new VerticalLayout();

在我们的示例中,我们在VerticalLayout列中显示三个组件。

  1. TextArea area = new TextArea();
  2. area.setWidth("650");
  3. area.setHeight("350");

创建了TextArea组件; 它的高度增加了。

  1. TextField field = new TextField("Enter an URL");

创建了TextField组件; 在这里,我们提供要读取的网页的名称。

  1. Button button = new Button("Submit");
  2. button.addClickListener(e -> {
  3. String content = ReadPage.read(field.getValue());
  4. area.setValue(content);
  5. });

在按钮事件处理器中,我们使用ReadPage.read()方法读取网页,并使用setValue()方法将 HTML 数据设置为TextArea

  1. layout.addComponents(area, field, button);

使用addComponents()将这三个组件添加到垂直布局中。

ReadPage.java

  1. package com.zetcode.service;
  2. import java.io.IOException;
  3. import java.util.logging.Level;
  4. import java.util.logging.Logger;
  5. import org.jsoup.Jsoup;
  6. public class ReadPage {
  7. public static String read(String webPage) {
  8. String html = "";
  9. try {
  10. html = Jsoup.connect(webPage).get().html();
  11. } catch (IOException ex) {
  12. Logger.getLogger(ReadPage.class.getName()).log(
  13. Level.WARNING, null, ex);
  14. }
  15. return html;
  16. }
  17. }

read()方法使用 Jsoup 读取给定网页的内容。

Vaadin `TextArea`教程 - 图1

图:Vaadin TextArea

在本教程中,我们展示了 Vaadin TextArea 组件的基础知识。 您可能也对相关教程感兴趣: Jsoup 教程Vaadin ComboBox教程Vaadin Grid教程Vaadin Button教程Vaadin 滑块教程Vaadin CheckBox教程Java 教程