无法加载字体Javafx

时间:2018-06-19 13:29:20

标签: css javafx material-design font-awesome font-face

我有一个小问题,我正在使用Javafx并将图标放在Text中。 所以我发现这篇文章可以帮助我: Colored Icon Font in JavaFX

Derek提供的解决方案有效,但是当我尝试将样式放在CSS中时,它不起作用:

@font-face {
  src: url(typeface/fontawesome-webfont.ttf);
}

@font-face {
  font-family: 'Indie Flower';
  src: url(http://fonts.googleapis.com/css?family=Indie+Flower);
}

@font-face {
  src: url(typeface/govicons-webfont.ttf);
}

@font-face {
  src: url(typeface/fontawesome-webfont.ttf);
}

@font-face {
  font-family: "MaterialIcons";
  src: url(typeface/MaterialIcons-Regular.ttf);
}


#i {
  -fx-font-family: 'Indie Flower'; 
  -fx-font-size: 80; 
  -fx-fill: forestgreen;
}

#love {
  -fx-font-family: "MaterialIcons";
  -fx-font-size: 60;
  -fx-fill: firebrick;
}

#u {
  -fx-font-family: "Indie Flower";
  -fx-font-size: 80;
  -fx-fill: forestgreen;
} 

然后这是我的java类,我在其中调用所有内容:

public class Test extends Application {
@Override
public void start(Stage stage) {

    System.setProperty("http.proxyHost", "myProxy");
    System.setProperty("https.proxyHost", "myProxy");
    System.setProperty("http.proxyPort", "myPort");
    System.setProperty("https.proxyPort", "myPort");

    Text i = new Text("I");
    Text love = new Text("\uE87D");
    Text u = new Text("you");

    u.setId("u");
    i.setId("i");
    love.setId("love");
    i.getStyleClass().add("i");
    love.getStyleClass().add("love");
    u.getStyleClass().add("u");

    TextFlow textFlow = new TextFlow(i, love, u);
    textFlow.setStyle("-fx-padding: 20px; -fx-background-color: azure;");

    Scene scene = new Scene(textFlow);
    final File externalCSSFile = new File("resources/Style.css");
    // Get style from external CSS
    scene.getStylesheets().add("file:///" + 
    externalCSSFile.getAbsolutePath().replace("\\", "/"));
    stage.setScene(scene);
    stage.show();
}

public static void main(String[] args) {
    launch(args);
}
}

当然,所调用的文件存在正确的路径。 因此,如果您有任何想法不起作用,请帮助我:)

0 个答案:

没有答案