在JavaFX中使用.ttf设置字体

时间:2018-08-14 01:14:59

标签: javafx fonts

我想使用comboBox更改代码中的字体 第一次我将字体家族与Font.getFamilies()一起使用,但是我想使用中文字体,最后我将.ttf文件复制到我的项目文件夹中

@FXML ChoiceBox<String> font;

font.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
        @Override
        public void changed(ObservableValue<? extends Number> arg0, Number oldNum, Number newNum) {
            // TODO Auto-generated method stub
            Font f = Font.loadFont(getClass().getResourceAsStream(list[(int)newNum].getPath()),20);
            label_other.setFont(f);
            label_name1.setFont(f);
            label_name2.setFont(f);
        }
     });

“ list”是一个数组,我将所有.ttf文件放入其中,并且我想更改这三个标签的字体。但是,当我使用setFont()时,它不会在屏幕上改变,而是会随着label.getFont();一起改变,然后我尝试使用setStyle("-fx-font-family: \""+f+"\";"),但包括我使用的它也没有任何改变label.getFont();会显示System,那么我该如何保存问题...


我还有一个问题是,当我使用setFont时,有时我会改变而有时却不会。当我使用中文字体时我也不会改变。是Java的问题还是我错过了什么...

0 个答案:

没有答案