我正在使用带有ControlsFX Glyph图标的JavaFX和fontawesome。
它与默认的JavaFX Modena主题很好地配合使用。
但是当我添加yellowOnBlack CSS以获得高对比度时,图标会变成奇怪的字体形状。
Glyph源代码显式设置了我传递“FontAwesome”的字体系列。它通过Label.setFontFamily()设置。
控制在摩德纳看起来像这样:
ToggleButton[id=btnHamburger, styleClass=toggle-button]''
Glyph@72cc2cbd[styleClass=label glyph-font]''
Text[text="", x=0.0, y=0.0, alignment=LEFT, origin=BASELINE, boundsType=LOGICAL_VERTICAL_CENTER, font=Font[name=FontAwesome, family=FontAwesome, style=Regular, size=14.0], fontSmoothingType=LCD, fill=0x333333ff]
当我添加yellowOnBlack时,它看起来像这样:
ToggleButton[id=btnHamburger, styleClass=toggle-button]''
Glyph@3bd84c6d[styleClass=label glyph-font]''
Text[text="", x=0.0, y=0.0, alignment=LEFT, origin=BASELINE, boundsType=LOGICAL_VERTICAL_CENTER, font=Font[name=System Regular, family=System, style=Regular, size=12.0], fontSmoothingType=LCD, fill=0xffff00ff]
它覆盖了font-family,这很奇怪,因为它是通过.setFontFamily()设置的。
那是因为yellowOnBlack设置了这个CSS:
.text,
.text-input {
-fx-font-weight: bold;
}
如果我这样做,它会起作用:
.glyph-font .text {
-fx-font-weight: normal;
-fx-font-family: "FontAwesome";
}
但是我无法将-fx-font-family修复为“FontAwesome”,因为它在Glyph构造函数上是可选的。
修复它的任何其他想法?
感谢。
答案 0 :(得分:0)
我创建了一个子类并覆盖了setFontFamily():
tree["columns"] = ("one", "two", "three")
tree.column("one", width=150)
tree.column("two", width=150)
tree.column("three", width=150)
tree.heading("one", text="Naar")
tree.heading("two", text="Spoor")
tree.heading("three", text="Vetrektijd")
tree['show'] = 'headings'
有效。不是最好的解决方案。
答案 1 :(得分:0)
我最近偶然发现了同样的问题。就我而言,从字形对象中删除“标签”样式类就足够了:
glyph.getStyleClass().remove("label");
因此,我的样式规则(其中设置了一些字体属性)都没有应用到该字形上,无法正确显示图标。