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

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();

在这里插入图片描述

三、一健三连

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

posted @   凌康  阅读(1090)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示