Vaadin 8:如何使用内置FontAwesome或自有图标集并展示大图标?
刚好之前做过Vaadin 8的项目,给你详细说说怎么用这两类图标,还有怎么搞大尺寸的图标展示:
在Vaadin 8中使用FontAwesome与Vaadin自有图标集
一、使用FontAwesome图标
Vaadin 8的部分早期版本(比如8.0到8.x的部分迭代版)确实内置了FontAwesome,这类情况直接用内置API就能搞定:
- 先导入对应类:
import com.vaadin.shared.ui.fontawesome.FontAwesome; - 创建图标组件:
Icon faIcon = FontAwesome.COG.create(); - 把图标加到布局里:
layout.addComponent(faIcon);
如果你的Vaadin 8版本没有内置FontAwesome,也能手动集成:
- 用Maven的话,在
pom.xml里加WebJars依赖:
<dependency> <groupId>org.webjars</groupId> <artifactId>font-awesome</artifactId> <version>4.7.0</version> <!-- 选一个和Vaadin 8兼容的版本就行 --> </dependency>
- 接着在你的UI类上注册FontAwesome的样式:
@StyleSheet("webjars/font-awesome/4.7.0/css/font-awesome.min.css") public class MyAppUI extends UI { // 你的UI逻辑代码 }
- 之后可以用
Label来展示图标,通过设置CSS类名实现:
Label faIcon = new Label(); faIcon.setStyleName("fa fa-cog"); // 这里的类名对应FontAwesome的图标标识 layout.addComponent(faIcon);
二、使用Vaadin自有图标集(Vaadin Icons)
Vaadin 8自带了官方的Vaadin Icons图标集,完全不需要额外引入依赖,用起来更省心:
- 导入类:
import com.vaadin.shared.ui.vaadinicons.VaadinIcons; - 创建图标组件:
Icon vaadinIcon = VaadinIcons.HOME.create(); - 加到布局中:
layout.addComponent(vaadinIcon);
三、展示大尺寸图标
不管用哪种图标集,要做大图展示都很简单,主要有两种方式:
- 直接设置图标尺寸
Vaadin的Icon组件支持直接指定大小:
Icon bigStar = VaadinIcons.STAR.create(); bigStar.setSize("80px"); // 直接设置宽高为80px layout.addComponent(bigStar);
- 自定义CSS类控制样式
可以自己写CSS类来定义更大的尺寸,还能顺便改颜色:
.big-icon { font-size: 100px; color: #2196F3; }
然后给图标组件加上这个样式:
Icon styledRocket = FontAwesome.ROCKET.create(); styledRocket.addStyleName("big-icon"); layout.addComponent(styledRocket);
如果是用Label展示的FontAwesome图标,同样可以叠加这个CSS类:
Label bigFaRocket = new Label(); bigFaRocket.setStyleName("fa fa-rocket big-icon");
内容的提问来源于stack exchange,提问作者Basil Bourque




