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

Kotlin+JavaFX系列

  1. 使用Kotlin开发JavaFX
  2. Windows下的JavaFX桌面应用程序打包ABC
  3. Kotlin编写JavaFX的顺滑
  4. JavaFX动画:有趣的AnimationTimer
  5. JavaFX应用程序图标
  6. JavaFX专业开发者与业余开发者之间就差一个一个Icon packs
  7. JavaFX七巧板游戏:布局窗格Panes
  8. JavaFX七巧板游戏:布局控件
  9. JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏
  10. Kotlin编写JavaFX的顺滑之数据控件(一)列表视图ListView
  11. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础应用
  12. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础深入浅出

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设计增加唯一一点亮点……因为我实在太弱啦……

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福是小强

除非你钱多烧得慌……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值