Combobox在其他Windows计算机上看不到系统字体

时间:2019-01-26 07:49:20

标签: javafx scenebuilder

我制作了JavaFX应用程序。我在组合框中有系统字体。 Combobox在我的计算机上很好地显示了字体,但是当我在其他Windows机器上启动应用程序时,combobox不显示系统字体,每种字体仅显示“系统”名称。

我在其他计算机上安装了每种字体,并仔细检查了它们的存在。

我该如何解决?

我还认为我以错误的方式添加了系统字体,因为每次我单击组合框字体时,都会在一秒钟后显示。这就像单击组合框时的延迟一样。

计算机上的组合框:

my fonts

其他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());
}

0 个答案:

没有答案