JavaFX开发者之图标

在使用JavaFX开发桌面程序时,为什么有些人的程序就那么专业,有些人的一看就很业余。

程序中的图标扮演了很重要的角色!

CSDN写文章的界面就很典型:

一看就很专业吧!

应用程序也是一样的,IDEA神器也满屏幕都是各种小小的图标。

图标,可以更加直观的为用户提供交互提示,看到图标,马上就能联想到功能,相类似或者相同的图标马上就能把不能的分类方式呈现在用户面前。

使用专业的图标,是开发专业应用程序的重要一环。

那么怎么才能找到这些图标呢?作为JavaFX开发者,有现成的轮子。

Icon packs for Java applications

Icon packs for Java applications

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

使用起来也很简单,对于Java FX开发者,两个版本,根据JDK需求选择

  • ikonli-javafx-12.3.1 (JDK 11+)
  • ikonli-javafx-2.6.0 (JDK 8)

这个工具包提供的核心类是一个Nodeorg.kordamp.ikonli.javafx.FontIcon

首先这个类是一个Node,所以,可以使用Node的地方都可以使用。其次,这个类是javafx.scene.text.Text的子类,所有可以使用的地方都能够使用。这个类最常见的使用是用于任何具有graphic属性的控件。

FXML中可以这样写:

<?xml version="1.0" encoding="UTF-8"?><?import javafx.scene.control.Button?>
<?import javafx.scene.layout.GridPane?>
<?import org.kordamp.ikonli.javafx.FontIcon?><GridPane prefHeight="60.0" prefWidth="200.0"xmlns:fx="http://javafx.com/fxml"fx:controller="org.example.AppController"><Button GridPane.columnIndex="0" GridPane.rowIndex="0"mnemonicParsing="false"prefWidth="200.0"><graphic><FontIcon iconLiteral="di-java" iconSize="64"/></graphic></Button>
</GridPane>

使用的时候在创建FontIcon对象可以通过字符串设定使用什么图标/图标尺寸/图标颜色。这个字符串可以是以下三种形式:

  • icon-code
  • icon-code:icon-size
  • icon-code:icon-size:icon-color
    Icon-code下面专门会讲,icon-size是用像素作为单位的图标宽度,icon-color则是javafx.scene.paint.Color, javafx.scene.paint.LinearGradient, or javafx.scene.paint.RadialGradient三类常量。例子:
val i1 = FontIcon("di-java")
val i2 = FontIcon("di-java:32")
val i3 = FontIcon("di-java:64:BLUE")

在Gradle项目中使用也很简单:

repositories {mavenCentral()
}dependencies {implementation 'org.kordamp.ikonli:ikonli-javafx:12.3.1'
}

Maven:

<dependencies><dependency><groupId>org.kordamp.ikonli</groupId><artifactId>ikonli-javafx</artifactId><version>12.3.1</version></dependency>
</dependencies>

此外记得在module-info.java中增加语句:

module com.acme.demo {requires javafx.base;requires javafx.graphics;requires javafx.controls;requires org.kordamp.ikonli.core;requires org.kordamp.ikonli.javafx;// 增加图标包requires org.kordamp.ikonli.fontawesome5;
}

最关键的问题?

怎么才能在Icon packs for Java applications提供的居多的包里面找到自己想要的图标呢?并且:

  1. 应用相应的图标包,
  2. 得到该图标的icon-code呢?

我特意编了一个软件来浏览Andres Almiray提供的所有图标,还有搜索功能。

软件的源代码开源在:java-ikon

安装下载:JavaFX 图标浏览与搜索软件

具体界面和操作太简单就不提,可以在java-ikon那里看得到。

结束语

值得注意的是,这个软件本身也用了一些Icon packs for Java applications提供的图标,给我孱弱的UI/UX设计增加唯一一点亮点……因为我实在太弱啦……

JavaFX专业开发者与业余开发者之间就差一个一个Icon packs相关推荐

  1. 你和你的女神之间,差了一个OpenCV口红色号识别器,android开发环境的搭建步骤

    MeanC=((int)(Mean_R/count),(int)(Mean_G/count),(int)(Mean_B/count)) return Me 番茄的颜色提取到了,那么和什么做比对呢? 当 ...

  2. 你和你的女神之间,差了一个OpenCV口红色号识别器

    前不久,身边一朋友要送女朋友生日礼物,送完就被女朋友吐槽了一顿. 什么???今年又送了死亡芭比粉???情人节也是??? 如果说彩妆中最受女生欢迎的是哪一个,相信所有人都会脱口而出:口红.尤其是有女朋友 ...

  3. 你与阿米巴经营之间只差了一个“中国式” 胡八一

    中国企业导入阿米巴经营模式,绝不能仅仅读了稻盛和夫的图书,就想实施和京瓷一样的阿米巴经营模式.中国式阿米巴与稻盛式阿米巴,既有共性,也有不同. 作为企业经营者,首先学习稻盛式阿米巴经营背后的核心思想, ...

  4. 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者

    原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...

  5. 个人开发者与企业开发者的区别

    个人开发者与企业开发者的一个主要的区别在于独立开发者授权描述文件必须列出具体的设备.另一个不同就是开发者账户最多使用100台设备,而企业则可以让苹果公司生成未锁定到特定设备并可以安装到任何设备上的授权 ...

  6. 亚马逊SP-API申请,亚马逊SP-API注册,亚马逊开发者申请,私人开发者和公共开发者出新规了

    大家现在不要再申请私人开发者了,亚马逊在2022年4月25日出了一个公告,针对私人开发者和公共开发者的授权进行了限制,私人开发者之前是可以进行自我授权和网站授权工作流程两种方式进行授权的,也就是说之前 ...

  7. 【AI 写作】《开发者思维:技术如何驱动企业的未来》全书目录、什么是开发者思维? 开发者思维与企业战略的关系?

    文章目录 <开发者思维:技术如何驱动企业的未来> 第一章:开发者思维的起源 理解开发者思维:开发者思维的定义和特点 技术对企业的影响 开发者思维的历史演变 软件人 将物理现实加以数字化,然 ...

  8. 华为开发者大会 2022 开发者主题演讲与技术分论坛干货分享(附课件)

    11 月 4 日-11 月 6 日,HDC 2022 在东莞成功举办,这是一场大规模落地的思维与技术的碰撞,众多业内专家到场,共话未来.其中,开发者主题演讲围绕增强的声明式开发体系,通过一个 Demo ...

  9. 南昌大学 计算机专业,考研:计算机专业选深圳大学和南昌大学?老师给出一个实用建议...

    原标题:考研:计算机专业选深圳大学和南昌大学?老师给出一个实用建议 最近有位网友在网络上咨询一个考研问题:计算机专业考研,深圳大学和南昌大学哪个好考?考研老师给出了他非常实用的建议如下: 第一 首先从 ...

最新文章

  1. 2016已经过去,2017即将开始
  2. java反码补码原码作用_java原码补码反码关系解析
  3. 曝光 Facebook 内部高效工作 PPT 指南
  4. jquery颜色转换html,jQuery颜色选取器插件COLPICK
  5. DHTML【2】--HTML
  6. 【计算理论】计算复杂性 ( 小 O 记号 | 严格渐进上界 | 分析算法的时间复杂度 )
  7. 一些经典的常用ASP代码[经典简单] (2)
  8. 您与此网站建立的连接不安全_PERT地暖管热熔连接到底安全不安全?
  9. 【Paper】2021_Optimal Distributed Leader-following Consensus of Linear Multi-agent Systems: A Dynamic
  10. JAVA——HttpClient封装工具类
  11. 调用startActivityForResult后,onActivityResult无响应的题目
  12. c/c++ 前置声明 -- typedef问题
  13. matlab中的libsvm怎么录入数据啊,LibSVM在MATLAB中使用时的几个问题
  14. tesseract-orc 合并识别结果
  15. q函数表格怎么看_会计表格函数玩不会?送你会计表格函数公式大全,财务人都在用...
  16. python3.4 + Django1.7.7 表单的一些问题
  17. Python 生成UUID
  18. C++处理有道单词导出单词本
  19. CEPH OSD_SCRUB_ERRORS 错误处理
  20. 我喜欢生命本来的样子--周国平

热门文章

  1. NGUI中UITable下文本内容过多无法自适应
  2. JS判断Android手机型号
  3. 使用javac、java命令编译运行java代码
  4. 19号笔刷是哪个_19号笔刷(ps19号笔刷在哪)
  5. vs 调出控制台窗口
  6. cognos学习笔记
  7. 解决selenium与chrome版本不匹配问题
  8. java中void和int的意思_c语言void和int的区别
  9. 安装计算机一级出现appcrash,appcrash,详细教您运行程序出现appcrash错误该如何解决...
  10. 斯坦福大学计算机视觉课程cs231n——第一课:课程介绍 计算机视觉概述