Я сделал приложение JavaFX. У меня есть системные шрифты в выпадающем списке. Combobox отображает шрифты на моем компьютере очень хорошо, но когда я запускаю свое приложение на другом компьютере Windows, combobox не отображает системные шрифты, он показывает только «Системные» имена для каждого шрифта.
Я установил все шрифты на другой машине и дважды проверил их наличие.
Как это исправить?
Мне также кажется, что я сделал неправильное добавление системных шрифтов, потому что каждый раз, когда я нажимаю на шрифты комбинированного списка, они отображаются через одну секунду. Это как задержка при нажатии на выпадающий список.
Combobox на моем компьютере:
Combobox на других машинах Windows:
@FXML private ComboBox<Font> fontSelector;
//getting font families
fontSelector.getItems().addAll(Font.getFamilies().stream().map(name -> Font.font(name, 14)).toArray(Font[]::new));
//display font families looks in combobox
class FontListCell extends ListCell<Font> {
@Override
public void updateItem(Font item, boolean empty) {
super.updateItem(item, empty);
if (item != null) {
setText(item.getFamily());
setFont(item);
} else {
setText("");
setFont(Font.font(12));
}
}
}
fontSelector.setCellFactory(lv -> new FontListCell());
fontSelector.setButtonCell(new FontListCell());
}