在 Vaadin TextArea
教程中,我们学习 Vaadin TextArea
组件的基础。 Vaadin TextArea
示例显示TextArea
组件中网页的内容。 该示例使用 Jsoup 库读取网页内容。
Vaadin 是一种流行的 Java Web 开发框架,用于构建单页 Web 应用。
TextArea
是显示纯文本的多行文本区域组件。
以下程序演示了 Vaadin TextArea
组件的用法。 它从网页中读取 HTML 内容,该内容在附近的TextField
组件中指定。
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.9.2</version>
</dependency>
我们需要将jsoup
依赖项添加到 Maven POM 文件中。 Jsoup 是一种流行的 Java HTML 解析器。
MyUI.java
package com.zetcode.main;
import javax.servlet.annotation.WebServlet;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Button;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.zetcode.service.ReadPage;
@Theme("mytheme")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
VerticalLayout layout = new VerticalLayout();
TextArea area = new TextArea();
area.setWidth("650");
area.setHeight("350");
TextField field = new TextField("Enter an URL");
field.setWidth("350");
Button button = new Button("Submit");
button.addClickListener(e -> {
String content = ReadPage.read(field.getValue());
area.setValue(content);
});
layout.addComponents(area, field, button);
layout.setMargin(true);
layout.setSpacing(true);
setContent(layout);
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
}
在代码示例中,我们具有三个组件:TextArea
,TextField
和Button
。
VerticalLayout layout = new VerticalLayout();
在我们的示例中,我们在VerticalLayout
列中显示三个组件。
TextArea area = new TextArea();
area.setWidth("650");
area.setHeight("350");
创建了TextArea
组件; 它的高度增加了。
TextField field = new TextField("Enter an URL");
创建了TextField
组件; 在这里,我们提供要读取的网页的名称。
Button button = new Button("Submit");
button.addClickListener(e -> {
String content = ReadPage.read(field.getValue());
area.setValue(content);
});
在按钮事件处理器中,我们使用ReadPage.read()
方法读取网页,并使用setValue()
方法将 HTML 数据设置为TextArea
。
layout.addComponents(area, field, button);
使用addComponents()
将这三个组件添加到垂直布局中。
ReadPage.java
package com.zetcode.service;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jsoup.Jsoup;
public class ReadPage {
public static String read(String webPage) {
String html = "";
try {
html = Jsoup.connect(webPage).get().html();
} catch (IOException ex) {
Logger.getLogger(ReadPage.class.getName()).log(
Level.WARNING, null, ex);
}
return html;
}
}
read()
方法使用 Jsoup 读取给定网页的内容。
图:Vaadin TextArea
在本教程中,我们展示了 Vaadin TextArea 组件的基础知识。 您可能也对相关教程感兴趣: Jsoup 教程, Vaadin ComboBox
教程, Vaadin Grid
教程, Vaadin Button
教程, Vaadin 滑块教程, Vaadin CheckBox
教程, Java 教程。