如何在JavaFX中嵌入字体变体

时间:2015-05-06 14:01:22

标签: css javafx javafx-8

我需要在JavaFX项目中使用一些变体(粗体,斜体等)嵌入本地.ttf文件,但css解析器似乎不支持 @ font-face 声明中的字体属性:

@font-face {
    font-family: 'Open Sans', sans-serif;
    src: url('fonts/OpenSans-Regular.ttf');
}
@font-face {
    font-family: 'Open Sans', sans-serif;
    src: url('fonts/OpenSans-Bold.ttf');
    font-weight: bold;
}
@font-face {
    font-family: 'Open Sans', sans-serif;
    src: url('fonts/OpenSans-ExtraBoldItalic.ttf');
    font-style: italic;
}
  

警告:解析CSS错误   罐子:文件:/home/test/dist/run736633436/test.jar /it/test/vending/css/application.css:   意外的TOKEN [:]在[8,15] mag 06,2015 3:40:15 PM   com.sun.javafx.css.parser.CSSParser fontFace警告:CSS错误   解析   罐子:文件:/home/test/dist/run736633436/test.jar /it/test/vending/css/application.css:   意外的TOKEN [:]在[13,14]

我怎么能实现这个目标?

== EDIT ==

请注意,解析器会抱怨 font-weight:bold; font-style:italic; 规则。

1 个答案:

答案 0 :(得分:1)

我想我找到了解决方案。尝试将font-weightfont-style属性与src属性进行交换。在您的情况下,您的CSS将如下所示:

@font-face {
    font-family: 'Open Sans', sans-serif;
    src: url('fonts/OpenSans-Regular.ttf');
}
@font-face {
    font-family: 'Open Sans', sans-serif;
    font-weight: bold;
    src: url('fonts/OpenSans-Bold.ttf');
}
@font-face {
    font-family: 'Open Sans', sans-serif;
    font-style: italic;
    src: url('fonts/OpenSans-ExtraBoldItalic.ttf');
}

我有同样的问题,交换属性完成了工作。我不知道为什么会这样,但它似乎解决了这个问题。