簡體   English   中英

無法設置自定義字體

[英]Can't set custom font

我正在開發一個JavaFX項目。 我想在CSS文件的Label上使用自定義字體。 我讀過並關注過,例如。 這篇文章。

public class Main extends Application {
    @Override
    public void init() {
        Font font = Font.loadFont(getClass().getResourceAsStream("Dimitri_Swank.ttf"), 32);
        System.out.println(font);
    }
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("Window.fxml"));
        // ...
    }
}

它打印Font[name=Dimitri Swank, family=Dimitri Swank, style=Regular, size=32.0] ,以便成功加載字體。 FXML文件中的根容器有一個stylesheets="@Window.css"屬性,在這個CSS文件中,有一個規則:

#gameName {
    -fx-font-family: Dimitri Swank;
    -fx-font-size: 32px;
}

選擇器運行良好(它指的是Label ),如果我更改-fx-font-size ,我可以看到區別。 但字體系列仍然是默認的系統字體。 我究竟做錯了什么?

JavaFX version 1.8u60您可以使用普通的css加載字體,但要小心,您需要使用Font File的確切原始名稱,例如:

@font-face{
    src: url("../fonts/Younger than me Bold.ttf");
}

.button{
  -fx-background-color:white;
  -fx-background-radius:15.0;
  -fx-font-size:18.0;
  -fx-font-family:"Younger than me";
  -fx-text-fill:black;
  -fx-font-weight:bold;  
}

提到可以找到原始名稱,使用默認編輯器打開.ttf並查看它的名稱,以防您不知道。

完整教程: http//www.guigarage.com/2014/10/integrate-custom-fonts-javafx-application-using-css/

另請查看您的情況: 在JavaFX CSS中指定外部字體


最后:

您的代碼中的問題是,在css中,您不是在font - family周圍添加雙引號"或單引號' font - family

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM