侧边栏壁纸
博主头像
Stars-one博主等级

所有的创作都是具有价值的
Android Kotlin Java开发者,喜欢折腾搞机,开发小工具
赞赏发电,给予支持

  • 累计撰写 144 篇文章
  • 累计创建 42 个标签
  • 累计收到 12 条评论

目 录CONTENT

文章目录

Tornadofx控件库(3)——IconTextFx 字体图标

Stars-one
2020-07-31 / 0 评论 / 0 点赞 / 562 阅读 / 1,189 字

JavaFx中其实也可以直接使用字体图标iconfont的**,只需要加载ttf字体文件,之后设置unicode即可,具体可以看我给出的代码**

既然JavaFx可以,那么以JavaFx为基础的Tornadofx自然也是可以使用字体图标的

以前开发的时候,总是需要去阿里巴巴矢量图去找图标,并下载到本地,然后在加到项目里,十分的麻烦

便是找到了Material Design风格的字体图标,5000+,然后封装成了一个开源库IconTextFx

更多详情请查看IconTextFx文档

下面是图标的预览图的一部分截图:

Kotlin代码

在Tornadofx中可以这样直接新建一个字体图标

text{
	font = loadFont("/ttf/xx.ttf",20.0)
	text = '\ue001'.toString()
	style={
		fontSize=5.px
		fill = c("red")
	}
}

PS: 后面测试的发现,需要把font设置在style里面,不然如果设置了hover悬浮的css样式时候,会导致字体图标变为一个矩形

使用双引号也没有什么问题

text{
	text = "\ue001".toString()
	style{
        font = loadFont("/ttf/xx.ttf",20.0)!!
		fontSize=5.px
		fill = c("red")
	}
}

JavaFx代码

//读取字体文件,第二个参数随便填
Font font = Font.loadFont(getClass().getResourceAsStream("/ttf/MaterialDesignIconsDesktop.ttf"), 20.0);
//某个图标的unicode
char unicode = '\ue001';
Text text = new Text();
//设置字体和文字
text.setFont(font);
text.setText(Character.toString(unicode));
//这里根据情况输入填写
text.setStyle("-fx-font-size:20px;-fx-fill:red;");

PS:Tornadofx中有个svgicon的方法,可以直接生成显示svg的控件

0

评论区