我在项目中使用FontAwesomeFX,并在标志符号名称属性设置为FontAwesomeIconView
的按钮内添加了WINDOW_MINIMIZE
。这部分可以看作是XML,如下所示。
<Button fx:id="minimizeButton" mnemonicParsing="false">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="WINDOW_MINIMIZE" />
</graphic>
</Button>
问题是,它在SceneBuilder中成功显示,如下所示:
但是,当我启动程序时,我在调试日志中看到了这些:
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
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内部版本12
SceneBuilder 9.0.1
de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2(Scenebuilder)
[GroupID] de.jensd [ArtifactID] fontawesomefx [Version] 8.9(在
pom.xml
中) 最佳答案
好吧,我仔细研究了一下,发现奇怪的是,FontAwesomeIcon
中的de.jensd:fontawesomefx:8.9
枚举(这是Maven Central Repository中的最新版本)不包含任何WINDOW_MINIMIZE
图标。
因此,我将图标更改为FontAwesomeIcon
中的其他图标。到目前为止,这已经解决了我的问题,但是这个问题仍未解决。