如何在vaadin中设置Button FontAwesome Icon with string

时间:2016-04-25 03:59:00

标签: vaadin

我想在DB中保存按钮图标,我希望有类似的内容:

Button button = new Button();
String icon = "FontAwesome.COGS";
button.setIcon(icon);

Button button = new Button();
String icon = "fonticon://FontAwesome/f013";
button.setIcon(new ThemeResource(icon));

实现这一目标的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

将图标的名称存储在数据库中并按名称加载:

setIcon(FontAwesome.valueOf("COGS"))

这可能会因ClassNotFoundException而失败。

答案 1 :(得分:0)

我用以下代码

解决了这个问题
button.setIcon(FontAwesomeUtil.fromName("COG"));

public class FontAwesomeUtil {
    public static FontAwesome fromName(String name) {
        FontAwesome[] arr = FontAwesome.values();
        int len = arr.length;

        for(int i = 0; i < len; ++i) {
            FontAwesome f = arr[i];
            if(f.name().equals(name)) {
                return f;
            }
        }

        System.out.println("name " + name + " not found in FontAwesome");
        return null;
    }
}