vaadin_Vaadin提示:以声明方式构建UI

vaadin

如果您使用过GWT,那么您可能会发现UiBinder对于设计复杂的UI很有用。 在有关Vaadin的系列文章中,我们希望在Vaadin和GWT之间得出相似之处。 Vaadin提供了多种开箱即用的工具和组件,用于构建复杂且美观的UI。 其中之一是可以像UiBinder那样声明性地构建UI。 与GWT相比,Vaadin提供了直接使用.html文件的可能性。

编程方式

与GWT中一样,Vaadin UI也可以通过编程方式构建。 例如,假设我们要构建一个简单的表单以将任务添加到待办事项列表。 以编程方式执行此操作的一种方法:

public class MainUI extends UI {@Override
protected void init(VaadinRequest request) {
// TODO Auto-generated method stub
FormLayout layout = new FormLayout();
TextField taskTitle = new TextField();
taskTitle.setCaption("Title");
taskTitle.setIcon(VaadinIcons.CHEVRON_DOWN);
TextArea taskDescription = new TextArea();
taskDescription.setCaption("Description");
taskDescription.setIcon(VaadinIcons.LINES);
DateField taskDate = new DateField();
taskDate.setCaption("Date");Button button = new Button("Add");
button.setIcon(VaadinIcons.PLUS);layout.addComponent(taskTitle);
layout.addComponent(taskDescription);
layout.addComponent(taskDate);
layout.addComponent(button);
setContent(layout);
}}

结果:

声明方式

如果用户界面很复杂且具有嵌套组件,则声明方法可能会很有用。 Vaadin开发了可以绑定到Java组件HTML自定义元素。 自定义元素以vaadin-开头。 元素的其余名称可以通过分隔单词并使其小写来从java类中提取,如Vaadin网站上所详述。 以声明方式创建UI的第一步是创建html文件,我们将其命名为Form.html:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="vaadin-version" content="8.0.5">
</head>
<body>
<vaadin-form-layout>
<vaadin-text-field icon="fonticon://Vaadin-Icons/e7ce" caption="Task Name" _id="todoTitle">
</vaadin-text-field>
<vaadin-text-area icon="fonticon://Vaadin-Icons/e7ef" _id="todoDescription">
</vaadin-text-area>
<vaadin-date-time-field caption="Date" _id="todoDate">
</vaadin-date-time-field>
<vaadin-button icon="fonticon://Vaadin-Icons/e801"_id="todoButton">
Add
</vaadin-button>
</vaadin-form-layout>
</body>
</html>

第二步是创建将绑定到此文件的java类。

@DesignRoot
public class Form extends FormLayout {public Form() {Design.read("Form.html", this);}
}

现在我们可以将其用作UI类中的常规组件:

public class MainUI extends UI {@Override
protected void init(VaadinRequest request) {
setContent(new Form());
}}

要将.html的字段绑定到java类中的字段,需要设置_id属性。 例如,绑定我们的文本框:

<vaadin-text-field icon="fonticon://Vaadin-Icons/e7ce" caption="Task Name" _id="todoTitle">
</vaadin-text-field>

然后我们可以将其添加到java文件中,它将被自动绑定:

@DesignRoot
public class Form extends FormLayout {TextField todoTitle;public Form() {Design.read("Form.html", this);//we can directly use it without initialization}
}

Vaadin还提供用于交互设计UI的有趣工具: Vaadin Designer 。 Vaadin Designer允许使用鼠标和拖放来设计UI。 我们仅将该工具用于演示目的,因此我们无法真正对其进行评估。 Vaadin-Designer可以通过减少构建UI的时间和处理“样板”部分来帮助提高生产率。 不幸的是,Vaadin Designer不是免费的,其增值取决于一个项目到另一个项目。

带走

以编程方式设计UI并不总是很方便。 Vaading有一种有趣的方法以声明方式构建UI。 HTML自定义元素提供了一种直接将.html文件链接到Java的方法。 也许这是GWT开发人员探索的道路,因为UiBinder将在下一个3.0版本中删除。

翻译自: https://www.javacodegeeks.com/2017/07/vaadin-tip-building-uis-declaratively.html

vaadin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关东升python从小白到大牛_《Python从小白到大牛》第3章 第一个Python程序

本章以HelloWorld作为切入点&#xff0c;介绍如何编写和运行Python程序代码。 运行Python程序主要有两种方式&#xff1a; 1&#xff0e;交互式方式运行 2&#xff0e;文件方式运行 本章介绍这两种运行方式实现HelloWorld程序。 使用Python Shell 进入Python Shell可以通过交互…

neo4j 显示名字_Neo4j:绘制“我的名字是……我在工作”图

neo4j 显示名字在过去的几天里&#xff0c;我一直在关注DHH发起的有关“我的名字是……”的推文。 据我了解&#xff0c;其想法是表明在白板上编写采访谜语/艰巨任务是荒谬的。 您好&#xff0c;我叫大卫。 我不会在白板上写气泡排序。 我一直在互联网上查找代码。 我不做谜语…

Final Cut Pro x(FCPX)调色笔记

文章目录一、注意点二、调色流程1. 颜色校正&#xff08;一级校色&#xff09;1.1 颜色转换即色彩空间转换1.2 降噪&#xff08;noise reduction 即NR&#xff09;1.3 调整曝光和对比度1.4 调整白平衡1.5 饱和度1.6 肤色调整2.二级校色2.1 突出人物主体的方法一2.2 突出人物主体…

axure web组件下载_实践干货:Axure插入图标的4种办法

编辑导读&#xff1a;图标是我们在制作产品原型的时候使用的比较多的一类素材&#xff0c;在日常绘制原型的时候一般是以插入的形式添加到Axure中。本文作者结合自身经验&#xff0c;介绍了四种Axure中引入图标的方法&#xff0c;希望对大家能有所帮助。在日常绘制原型的时候&a…

上师大计算机学院分数线,分数低还想上师范大学?这4所师范院校,二本的分数就够了...

截至目前&#xff0c;全国各省市高考成绩全部公布了&#xff0c;接下来最主要的工作就是填报志愿&#xff0c;选择适合自己的大学和专业。每年到这个时候&#xff0c;就有不少家长和考生问我&#xff0c;自己的分数较低&#xff0c;不够一本线&#xff0c;有没有比较好的师范大…

上古卷轴3晨风职业_巫师3:上古卷轴5老玩家,入手巫师3,体验昆特牌版“实验室”...

今天小编入手了&#xff0c;期待已久的《巫师3》&#xff0c;而作为一个《上古卷轴5》的“老油条”&#xff0c;奇趣君下面说一下&#xff0c;一个老滚5的“老油条”玩《巫师3》是什么样的体验。首先我进入了开场动画&#xff0c;我没有跳过&#xff0c;而是看着他的剧情&#…

MacBook Mac OS 无法识别移动硬盘的解决办法

文章目录方法一、打开系统信息 System Information方法二、打开磁盘工具 Disk Utility方法一、打开系统信息 System Information 打开「系统信息」&#xff0c;点击左侧硬件列表的 USB&#xff0c;在右侧找到你的移动硬盘点击查看&#xff0c;如下图所示&#xff1a; 然后打开…

mysql没有开启binlog能恢复数据吗_一个妹纸rm -rf把公司整个数据库删没了...

经历了两天不懈努力&#xff0c;终于恢复了一次误操作删除的生产服务器数据。对本次事故过程和解决办法记录在此&#xff0c;警醒自己&#xff0c;也提示别人莫犯此错。也希望遇到问题的朋友能找到一丝灵感解决问题。事故背景安排一个妹子在一台生产服务器上安装 Oracle&#x…

头条号个人中心登录_头条号平台上线「插入小程序」功能

头条号平台上线「插入小程序」功能&#xff0c;创作者可在图文、小视频和自定义菜单中插入头条小程序&#xff0c;帐号服务能力和变现能力进一步提升。一、什么是「头条小程序」&#xff1f;「头条小程序」是为内容生产者提供的延伸变现工具&#xff0c;是对创作者内容服务的延…

stearm计算机验证码,steam账户名称怎么取,值得收藏

steam是计算机游戏界最大的数码发行平台&#xff0c;是一个游戏整合下载平台&#xff0c;很多喜欢玩游戏的朋友都会用这个软件&#xff0c;当然也不少刚开始使用这个软件的朋友&#xff0c;这些朋友因为才刚刚接触到这个软件所以不知道steam账户名称怎么取&#xff0c;不要担心…

造完家怎么拆东西_地弹簧玻璃门怎么拆?地弹簧玻璃门拆除注意事项有哪些?...

现如今&#xff0c;我们总可以看到玻璃门的身影&#xff0c;在我们的生活中&#xff0c;玻璃门可以说是随处可见。而对于安装玻璃门&#xff0c;大家了解多少呢?为了更好认识玻璃门&#xff0c;今天就带大家一起走进玻璃门的安装中&#xff0c;告诉大家怎么样拆卸和组装玻璃门…

dubbo provider异步_Dubbo学习(六) Dubbo面试问题

Dubbo是Alibaba开源的分布式服务框架&#xff0c;它最大的特点是按照分层的方式来架构&#xff0c;使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看&#xff0c;Dubbo采用的是一种非常简单的模型&#xff0c;要么是提供方提供服务&#xff0c…

测试网页兼容软件,WEB测试兼容性

软件兼容性测试在目前软件测试领域占有很只要的地位&#xff0c;无论B/S架构还是C/S架构的软件都需要进行兼容性测试&#xff0c;充分保证产品的平台无关性&#xff0c;使用户群充分的感受到软件的友好。139WDA属于WEB产品&#xff0c;以下就来总结下WEB测试之兼容性测试。WEB兼…

kafka数据到flume_大数据摄取:Flume,Kafka和NiFi

kafka数据到flume初赛 在构建大数据管道时&#xff0c;我们需要考虑如何吸收出现在通常是Hadoop生态系统大门口的数据量&#xff0c;多样性和速度。 在决定采用哪种工具来满足我们的要求时&#xff0c;诸如可伸缩性&#xff0c;可靠性&#xff0c;适应性&#xff0c;开发时间成…

手机热点总是正在连接服务器,手机热点用不了?可以尝试这个方法。

原标题&#xff1a;手机热点用不了&#xff1f;可以尝试这个方法。下班路上&#xff0c;上司突然打来“夺命连环call”&#xff0c;早上的方案需要赶紧改一下。无奈&#xff0c;只能拿出笔记本在地铁上临时办公&#xff0c;关键时候连接手机热点&#xff0c;却发现还是没网络。…

Sublime Text for Mac 最新版安装后,无法搜索到Install Package的解决办法

打开命令面板搜索不到Install Package&#xff0c;说明没有安装Package Control。 如何安装Package Control&#xff1f; 首先打开Package Control中文镜像&#xff0c;打开后如下图所示&#xff1a; 点击「Install Now」后&#xff0c;如下图所示&#xff1a; 我们看到有两…

tomcat应用服务器有哪些,手写一个Tomcat应用服务器

mytomcat项目简介自己实现的简易的TomcatTomca实现说明Tomcat&#xff0c;这只3脚猫&#xff0c;大学的时候就认识了&#xff0c;直到现在工作中&#xff0c;也常会和它打交道。这是一只神奇的猫&#xff0c;我们可以通过实现它来深刻了&#xff1b;了解它的实现原理。考虑自己…

SublimeText如何让代码的关键字高亮显示

如何设置不同语法的关键字高亮显示 假设你编写java代码&#xff0c;希望代码关键字高亮显示&#xff0c;你可以在菜单栏中选择「查看」-「语法」-「java」&#xff0c;勾选java即可&#xff0c;如下图&#xff1a; 当然&#xff0c;你也可以在页面右下角点击打开语法类型列表…

stringbuffer_StringBuffer的存在的含义

stringbuffer当我处理旧代码并在StringBuffer实例上运行时&#xff0c;通常将它们替换为StringBuilder实例。 尽管可以从此更改中获得性能优势&#xff0c;但我经常在我所知不会对性能产生明显影响的地方进行更改。 我认为&#xff0c;除了可能带来性能收益外&#xff0c;还应出…

服务器系统js文件报错,js服务器文件

js服务器文件 内容精选换一换登录Windows操作系统的弹性云服务器时&#xff0c;需使用密码方式登录。因此&#xff0c;用户需先根据创建弹性云服务器时使用的密钥文件&#xff0c;获取该弹性云服务器初始安装时系统生成的管理员密码(Administrator帐户或Cloudbase-init设置的帐…