В моем приложении Java FX есть текст на английском и иврите, я хочу использовать Робото для английского текста и Ното без иврита для текста на иврите.
Код, который я придумал, не работает, как описано ниже, Код:
// java
Parent root = new VBox() {{
getChildren().addAll(
new Label("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG"),
new Label("the quick brown fox jumps over the lazy dog"),
new Label("השפן טעם ביס ואכל קצת גזר חד")
);
}};
primaryStage.setScene(new Scene(root) {{
getStylesheets().add(getClass().getResource("style.css").toExternalForm());
}});
primaryStage.show();
// style.css
@font-face {
src: url('Roboto-Regular.ttf');
}
@font-face {
src: url('NotoSansHebrew-Regular.ttf');
}
.root {
/* Attempt 1 - it only takes the first one */
-fx-font-family: "Roboto" "Noto Sans Hebrew";
/* Attempt 2 - it only takes the last one */
-fx-font-family: "Roboto";
-fx-font-family: "Noto Sans Hebrew";
}
Этот код является примером. В моем реальном приложении я не знаю, у какого Node какой язык.






Вам нужно ориентироваться на реальных людей
Labels. Это можно сделать, дав всем английскимLabelодин класс стиля, а всем ивритамLabelдругой класс стиля. Чтобы добавить класс стиля, используйтеNode.getStyleClass().add(...). Затем используйте классы стилей в файле CSS.