Фактически искал везде, но любой ответ не может мне помочь, вот проблема: Я хочу добавить собственный шрифт к своим кнопкам. Я уже пытался написать класс css java и множество других решений, но ничего не помогло.JavaFX custom Fonts
/код удален/
Я был бы так рад, если кто-нибудь может мне помочь!
Update: Я попытался это:
package view;
import ...
public class SceneStyle {
ImageView header = new ImageView("/view/images/header.jpg");
ImageView chatImg = new ImageView("/view/images/chat_win.jpg");
//Layout Style
//public String font1 = "Impact";
//public String font2 = "Comic Sans MS";
public static String color1 = "#00adf0";
public static String color2 = "#0076a3";
public void setLabelStyle(Label label) {
label.setStyle("-fx-font-family: Inconsolata:700; -fx-font-size: 25");
Scene scene = new Scene(label);
scene.getStylesheets().add("https://fonts.googleapis.com/css?family=Inconsolata:700");
label.setTextFill(Color.GRAY);
}
public void setLabelStyle2(Label label){
label.setStyle("-fx-font-family: Inconsolata:700; -fx-font-size: 25");
Scene scene = new Scene(label);
scene.getStylesheets().add("https://fonts.googleapis.com/css?family=Inconsolata:700");
label.setTextFill(Color.GRAY);
}
public void setLabelStyle3(Label label){
label.setStyle("-fx-font-family: Inconsolata:700; -fx-font-size: 25");
Scene scene = new Scene(label);
scene.getStylesheets().add("https://fonts.googleapis.com/css?family=Inconsolata:700");
label.setTextFill(Color.RED);
}
public void setButtonStyle(Button button){
button.setStyle("-fx-font-family: Inconsolata:700; -fx-font-size: 30; -fx-font-style: normal");
Scene scene = new Scene(button);
scene.getStylesheets().add("https://fonts.googleapis.com/css?family=Inconsolata:700");
button.setTextFill(Color.web(color2));
button.setPrefWidth(190);
}
public void setBorderPaneStyle(BorderPane pane, VBox btnBox, HBox scoreBox){
pane.setTop(header);
pane.setLeft(btnBox);
pane.setRight(chatImg);
pane.setBottom(scoreBox);
pane.getLeft().setStyle("-fx-background-image: url(\"/view/images/border_left.jpg\");");
pane.getBottom().setStyle("-fx-background-image: url(\"/view/images/bottom.jpg\");");
//pane.getCenter().setStyle("-fx-background-image: url(\"/view/images/center.jpg\");");
//TODO: why can't I implement this?
}
public static String getFontColor1(){ return color1; }
public static String getFontColor2(){ return color2; }
Спасибо за подробные ответы, но на самом деле я не хочу, чтобы написать метод запуска, который будет переписан. Просто хочу реализовать шрифт в моем коде. И да, теперь я пытаюсь использовать Google Fonts. Спасибо, что ответили на мой вопрос.
@ font-face не работает для меня каждый раз, когда я его пробовал. Вы должны загрузить шрифт через свой код с помощью Font.loadFont (...). И тогда вы можете использовать его над своим css. – Marcel
Вы можете попробовать использовать этот [маленький пример] (https://github.com/TheItachiUchiha/FontLoad), который использует '@ font-face' для загрузки нового файла шрифта, а затем применяет его к элементам управления кнопками и ярлыками. – ItachiUchiha
Существует [блог fxexperience об использовании размещенных в Google шрифтов] (http://fxexperience.com/2012/12/use-webgoogle-fonts-in-javafx/), определяемый с помощью CSS '@ font-face'. – jewelsea