Combobox не видит системные шрифты на другом компьютере Windows - PullRequest
0 голосов
/ 26 января 2019

Я сделал приложение JavaFX. У меня есть системные шрифты в выпадающем списке. Combobox отображает шрифты на моем компьютере очень хорошо, но когда я запускаю свое приложение на другом компьютере Windows, combobox не отображает системные шрифты, он показывает только «Системные» имена для каждого шрифта.

Я установил все шрифты на другой машине и дважды проверил их наличие.

Как это исправить?

Мне также кажется, что я сделал неправильное добавление системных шрифтов, потому что каждый раз, когда я нажимаю на шрифты комбинированного списка, они отображаются через одну секунду. Это как задержка при нажатии на выпадающий список.

Combobox на моем компьютере:

my fonts

Combobox на других машинах Windows:

fonts on other windows machine

@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());
}
...