FontAwesomeIconView在SceneBuilder中显示图标,在应用程序中失败

时间:2017-12-21 21:07:48

标签: java javafx font-awesome scenebuilder glyphicons

我在项目中使用FontAwesomeFX,并在一个按钮内添加了FontAwesomeIconView,其中字形名称属性设置为WINDOW_MINIMIZE。这部分可以看作如下的XML。

<Button fx:id="minimizeButton" mnemonicParsing="false">
   <graphic>
      <FontAwesomeIconView fill="WHITE" glyphName="WINDOW_MINIMIZE" />
   </graphic>
</Button>

问题是,它在SceneBuilder中成功显示,如下所示:

FontAwesomeIconView WINDOW_MINIMIZE

但是,当我启动程序时,我在调试日志中看到了这些:

Dec 21, 2017 11:49:50 PM de.jensd.fx.glyphs.GlyphIcon updateIcon
SEVERE: Icon 'WINDOW_MINIMIZE' not found. Using 'ANCHOR' (default) instead

该应用程序显示ANCHOR而不是WINDOW_MINIMIZE

FontAwesomeIconView Anchor icon

由于FontAwesomeIconView s according to this answer的大小问题,我也应用了此CSS规则(以防万一与问题相关):

.glyph-icon{ -fx-font-family:"FontAwesome"; }

为什么在SceneBuilder和Maven中有不同的导入

正如您在下面的环境部分中所看到的,我在Maven配置文件和SceneBuilder中导入了不同的内容。

嗯,原因很简单,当你导入FontAwesomeIconView时,SceneBuilder没有看到de.jensd:fontawesomefx:8.9,这就是我在SceneBuilder中导入de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2并且它适用于Maven导入的原因。

那么,为什么我不这样做呢?我的意思是,为什么我没有在de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2中导入pom.xml。奇怪的是,它是用Java 9编译的,我的项目是在Java 8上运行的。当然,它抛出了类版本异常或类似的东西。此外,我不知道迁移到Java 9是否会导致更多麻烦,所以我没有在pom.xml中导入它。

环境

  • Java 1.8.0_151
  • JavaFX 8.0.151 build 12
  • SceneBuilder 9.0.1
  • de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2(Scenebuilder)
  • [GroupID] de.jensd [ArtifactID] fontawesomefx [Version] 8.9(in pom.xml

1 个答案:

答案 0 :(得分:0)

好吧,我仔细研究了一下,奇怪的是,FontAwesomeIcon de.jensd:fontawesomefx:8.9枚举(这是Maven Central Repository中的最新版本)不包含任何WINDOW_MINIMIZE图标。

这就是为什么,我将我的图标更改为FontAwesomeIcon中的其他内容。这解决了我现在的问题,但这个问题仍有待进一步解答。