JavaFx之Ikonli图标库大全(十五)

Ikonli给java提供了大量的图标库,
官网:https://kordamp.org/ikonli/

Ikonli 提供了可以在 Java 应用程序中使用的图标包。目前支持 Swing 和 JavaFX UI 工具包。

其中ikonli有非常多图标库,下面我只显示fontawesome,想要其他图标可引入对应依赖即可。
这里我演示使用javafx+java 8:ikonli-javafx-12.2.0 (JDK 11+)或ikonli-javafx-2.6.0 (JDK 8)
先引入依赖:

<!-- javafx 支持 -->
<dependency>
<groupId>org.kordamp.ikonli</groupId>
<artifactId>ikonli-javafx</artifactId>
<version>2.6.0</version>
</dependency>
<!-- fontawesome图标 java8 不支持 ikonli-fontawesome5-pack -->
<dependency>
<groupId>org.kordamp.ikonli</groupId>
<artifactId>ikonli-fontawesome-pack</artifactId>
<version>2.6.0</version>
</dependency>

对应的图标编码在这里:https://kordamp.org/ikonli/cheat-sheet-fontawesome.html

一、使用XML加载

import java.net.URL;

/**
* @author lingkang
*/
public class Ikonli01 extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 加载 xml
URL resource = getClass().getResource("/fxml/test/ikonli-icon.fxml");
AnchorPane load = FXMLLoader.load(resource); primaryStage.setScene(new Scene(load));
primaryStage.show();
} public static void main(String[] args) {
launch(args);
}
}
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.AnchorPane?>
<?import org.kordamp.ikonli.javafx.FontIcon?>
<AnchorPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
prefHeight="400.0" prefWidth="600.0">
<Button text="按钮图标" style="-fx-background-color: red">
<graphic>
<FontIcon fill="white" iconLiteral="fa-address-book"/>
</graphic>
</Button>
<Button text="普通按钮图标" layoutY="30" style="-fx-background-color: blue"></Button>
</AnchorPane>

二、使用代码加载

AnchorPane anchorPane=new AnchorPane();
anchorPane.setPrefWidth(400);
anchorPane.setPrefHeight(300); FontIcon fontIcon=new FontIcon("fa-address-card-o");
fontIcon.setFill(Paint.valueOf("red")); // 图标需要放在label中,或者其他标签,例如按钮等
Label label=new Label();
label.setGraphic(fontIcon);
label.setFont(Font.font(18));
label.setLayoutX(10);
label.setLayoutY(10); FontIcon icon=new FontIcon("fa-apple"); Button button=new Button("图标按钮");
button.setGraphic(icon);
button.setLayoutX(10);
button.setLayoutY(40);
button.setFont(Font.font(30));
anchorPane.getChildren().addAll(label,button);
primaryStage.setScene(new Scene(anchorPane));
primaryStage.show();

三、一健三连

创作不易,你觉得对你有帮助请给我点个赞!一健三连…谢谢啦!

JavaFx之Ikonli图标库大全(十五)的更多相关文章

  1. 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记

    第十五章:控制脚本 处理信号 重温Linux信号 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能 ...

  2. Android图表库MPAndroidChart(十二)——来点不一样的,正负堆叠条形图

    Android图表库MPAndroidChart(十二)--来点不一样的,正负堆叠条形图 接上篇,今天要说的,和上篇的类似,只是方向是有相反的两面,我们先看下效果 实际上这样就导致了我们的代码是比较类 ...

  3. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

     孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...

  4. 王颖奇 20171010129《面向对象程序设计(java)》第十五周学习总结

    实验十五  GUI编程练习与应用程序部署 实验时间 2018-12-6 学习总结: 理论部分: ◼ JAR文件◼ 应用程序首选项存储◼ Java Web Start JAR文件: 1.Java程序的打 ...

  5. Bootstrap <基础二十五>警告(Alerts)

    警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...

  6. Bootstrap<基础十五> 输入框组

    Bootstrap 支持的另一个特性,输入框组.输入框组扩展自 表单控件.使用输入框组,可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮. 通过向输入域添加前缀和后缀的内容,您可以向用户输 ...

  7. 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

    无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...

  8. php大力力 [037节] Iconfont-阿里巴巴矢量图标库

    Iconfont-阿里巴巴矢量图标库 从此不求人:自主研发一套PHP前端开发框架 Iconfont-中国第一个最大且功能最全的矢量图标库,提供矢量图标下载.在线存储.格式转换等功能.阿里巴巴体验团队倾 ...

  9. Python之路【第十五篇】:Web框架

    Python之路[第十五篇]:Web框架   Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...

  10. NeHe OpenGL教程 第三十五课:播放AVI

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

随机推荐

  1. 其它——MySQL主从搭建基于docker

    文章目录 10分钟搭建MySQL主从同步(基于docker) 一 主从配置原理 二 操作步骤 2.1我们准备两台装好mysql的服务器(我在此用docker模拟了两台机器) 2.2 远程连接入主库和从 ...

  2. 关于C++拷贝控制

    通常来说,对于类内动态分配资源的类需要进行拷贝控制:要在拷贝构造函数.拷贝赋值运算符.析构函数中实现安全高效的操作来管理内存.但是资源管理并不是一个类需要定义自己的拷贝控制成员的唯一原因.C++ Pr ...

  3. 2020/5/8—cf,我裂开来

    呜呜呜我爆零了呜呜呜ljll 嗯T1T2防爆零的没了呜呜呜在此纪念可怜的yjz大佬21发AC 太惨了(逃 先来说说我们都有些啥题目吧... T1 嗯,裂开了,当场裂开我一看!桶排!然后实现,嗯?嗯!嗯 ...

  4. 【docker简略学习】

    [docker简略学习] Docker是一个应用打包.分发.部署工具,相当于一个轻量级虚拟机.相比较VM虚拟机,可移植性更强. 一.Docker安装 下载链接:https://docs.docker. ...

  5. Shuffle 题解

    Shuffle 题目大意 给定一个长度为 \(n\) 的 01 序列 \(a\),你可以进行至多一次以下操作: 选定 \(a\) 的一个连续段,满足连续段内恰好有 \(k\) 个 \(1\),将该连续 ...

  6. oauth2单点登录集成

    单点登陆 概念: 单点登录其实就是在多个系统之间建立链接, 打通登录系统, 让同一个账号在多个系统中通用 举个例子: 登录Gmail的时候可以用账号密码登录, 也可以用google账号登录, 而使用g ...

  7. 怎么用Python写一个浏览器集群框架

    这是做什么用的 框架用途 在采集大量新闻网站时,不可避免的遇到动态加载的网站,这给配模版的人增加了很大难度.本来配静态网站只需要两个技能点:xpath和正则,如果是动态网站的还得抓包,遇到加密的还得j ...

  8. 博弈论nim游戏

    nim游戏 给定n堆物品,第i堆物品有Ai个,两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取.取走最后一件物品的人获胜. 定理:nim游戏先手必胜,当且仅当A1 xor ...

  9. RSA总结 From La神

    常用工具 分解大素数 factordb (http://www.factordb.com / API: http://factordb.com/api?query=) yafu (p q 相差过大或过 ...

  10. SpringBoot系列之MyBatis Plus自动填充实现

    系列博客专栏:SpringBoot2.0系列博客专栏 开发环境 JDK 1.8 SpringBoot2.2.1 Maven 3.2+ Mysql5.7.36 开发工具 IntelliJ IDEA sm ...