图标集
图标集支持将可视化组件中使用的图片图标进行解耦,从使用实际的图片路径改为使用主题内的图片或者字体元素常量。同时也简化了对继承自 扩展组件 中 UI 的图标进行覆盖的工作。
图标集是图标对应的枚举值。一个图标集必须实现 Icons.Icon
接口,并带有一个字符串类型的参数,用来表示图标源。例如,font-icon:CHECK
或 icons/myawesomeicon.png
。可以使用框架提供的 Icons
bean 获取图标源。
下面是创建图标集的过程。
-
创建一个包含图标的枚举。集合中的所有图标名称必须符合正则表达式
[A-Z]_
,也就是说只能包含大写字母和下划线。public enum MyIcon implements Icons.Icon { EYE("classpath:/icon/eye.png"), (1) PENGUIN("classpath:/icon/penguin.png"); (2) private String source; MyIcon(String source) { this.source = source; } @Override public String source() { return source; } @Override public String iconName() { return name(); } }
1 覆盖 Jmix 默认图标 2 添加新图标 -
在
application.properties
文件的 jmix.ui.icons-config 属性中注册图标集:jmix.ui.icons-config=ui.ex1.icon.MyIcon
-
然后可以在界面 XML 中使用声明式通过图标名称进行使用:
<button icon="PENGUIN"/>
或者在界面控制器编程式使用:
iconButton.setIconFromSet(MyIcon.PENGUIN);
下面这些前缀支持通过声明的方式使用不同来源的图标:
-
theme
- 图标保存在当前的主题目录中,例如,themes/helium-extended/icons/check-mark.png
:<button icon="theme:icons/check-mark.png"/>
-
file
- 图标来自文件系统:<button icon="file:D:/JMIX/penguin.png"/>
-
classpath
- 图标从 classpath 获取:<button icon="classpath:/icon/eye.png"/>
本页是否有帮助?
感谢您的反馈