如何使用代码点将 material 设计图标添加到 JavaFX?

How to add material design icon to JavaFX using codepoint?

要使用 material 设计图标,我执行了以下操作:

1.Downloaded 来自 https://materialdesignicons.com/
的 ttf 字体 2.in 我的 css 我添加的文件:

  @font-face {
    src: url('fonts/materialdesignicons-webfont.ttf');
  }
  .icon {
    -fx-font-size: 15px;
    -fx-font-family: 'Material Design Icons';
  }

3.Here https://pictogrammers.github.io/@mdi/font/6.5.95/ 我复制了第一个图标( mdi-account-lock-open with codepoint F1960)并将此图标粘贴到我的 Java 代码中:

4.After 我将 icon class 添加到 button 并且一切正常 - 我有一个带图标的按钮。

唯一的问题是在我的 java 代码中我看不到我使用的图标 - 我到处都有 empty rectangles。如果可能的话,我想使用代码点添加图标,对于这个示例代码点 F1960。我试过了

private final Button button = new Button("\uF1960");

但是没用。谁能说说怎么做?

对于图标,我建议使用 ikonli。据我所知,它提供了很多图标字体到 JavaFX 的最佳集成。

您要找的具体套装好像是这个:materialdesign2

Java 个字符是 UTF-16 个值。您不能直接将 U+F1960 嵌入字符串中,因为 Unicode \u 转义后必须紧跟四个十六进制数字。

代码点值高于 FFFF 的字符称为增补字符。 UTF-16 使用 代理项对 表示此类字符, 是来自 Unicode 保留部分的两个字符的序列。

您可以将字符串文字中的 U+F1960 表示为其代理对:"\udb86\udd60"

另一种更容易记住的方法是 String.format("%c", 0xF1960)。底层 java.util.Formatter 被记录为允许 %c 的整数参数,并且与字符不同,整数可以大于 16 位。