我有一个小问题,我正在使用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);
}
}
当然,所调用的文件存在正确的路径。 因此,如果您有任何想法不起作用,请帮助我:)