You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

JavaFX中GluonHQ MaterialDesignIcons图标无法显示求助

解决Gluon Charm Icon在Eclipse中不显示的问题

我之前把NetBeans做的Gluon JavaFX项目迁移到Eclipse时,也碰到过一模一样的图标空白问题,给你几个针对性的排查方向:

  • 确保Gluon依赖完整且版本兼容
    你只添加了MaterialDesignIcons的依赖,但Icon控件本身属于Gluon Charm Glisten库,必须同时引入这个核心依赖。而且两个库的版本要匹配,比如Charm 6.x系列对应Material Design Icons 5.x系列。在你的pom.xml里补充完整依赖:

    <dependency>
        <groupId>com.gluonhq</groupId>
        <artifactId>charm-glisten</artifactId>
        <version>6.2.0</version> <!-- 建议用最新稳定版,可去Maven仓库查询 -->
    </dependency>
    <dependency>
        <groupId>com.gluonhq</groupId>
        <artifactId>material-design-icons</artifactId>
        <version>5.1.45</version>
    </dependency>
    
  • 强制Eclipse同步Maven依赖
    Eclipse导入项目后,偶尔会出现Maven依赖未自动下载或更新的情况,导致库文件缺失。右键你的项目 → 选择Maven → Update Project,勾选「Force Update of Snapshots/Releases」,点击确定等待同步完成。之后检查Maven Dependencies下是否存在这两个库的jar包,确认资源已加载。

  • 检查FXML的命名空间配置
    NetBeans生成的FXML默认会带正确的命名空间,但Eclipse如果识别有误也会引发问题。确保你的FXML根元素配置了正确的JavaFX命名空间,示例如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <?import javafx.scene.layout.VBox?>
    <?import com.gluonhq.charm.glisten.control.Icon?>
    <VBox xmlns="http://javafx.com/javafx/17.0.2" xmlns:fx="http://javafx.com/fxml/1">
        <Icon content="FILE_DOWNLOAD" prefHeight="112.0" prefWidth="119.0" />
    </VBox>
    

    注意这里的JavaFX版本要和你项目使用的版本保持一致(比如11、17等)。

  • 模块化项目需配置module-info.java
    如果你的项目是Java 9+的模块化项目(包含module-info.java),必须在模块声明中引入Gluon的相关模块,否则运行时无法加载图标资源:

    module your.project.module {
        requires javafx.controls;
        requires javafx.fxml;
        requires charm.glisten;
        requires material.design.icons;
        // 替换为你的FXML所在包,允许FXMLLoader访问
        opens com.your.package to javafx.fxml;
    }
    
  • 验证图标资源是否存在
    可以手动打开material-design-icons的jar包,检查里面是否包含FILE_DOWNLOAD对应的图标资源(通常是svg或字体文件)。如果找不到,说明依赖版本不匹配或下载的jar包有问题,建议删除本地Maven仓库中对应的缓存文件,重新下载依赖。

按这个顺序排查下来,基本能解决图标空白的问题。

内容的提问来源于stack exchange,提问作者Gaëtan

火山引擎 最新活动