Подтвердить что ты не робот

Добавить значки в JButton с помощью пользовательского шрифта из символов AwesomeFont и Unicode в Java Swing?

У меня есть JButton, и я хочу добавить к нему значок. Я хотел бы использовать значки на основе шрифтов из FontAwesome, который предоставляет файл шрифта TrueType. Значок, который я пытаюсь добавить, - это значок кнопки воспроизведения. Значок кнопки воспроизведения в файле css для FontAwesome \f04b, который я верю, переводится в \uf04b в Java.

Вот как я загружаю шрифт в конструкторе базового класса IconButton.

public class IconButton extends JButton {
  public IconButton() {
    try {
      InputStream in = this.getClass().getResourceAsStream("/fontawesome-webfont.ttf");
      Font ttfBase = Font.createFont(Font.TRUETYPE_FONT, in);
      Font ttfReal = ttfBase.deriveFont(Font.BOLD, 24);
      setFont(ttfReal);
    } catch (FontFormatException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
  }
}

В реализующем классе StartButton это то, как я устанавливаю текст.

public class StartButton extends IconButton {
  public StartButton() {
    setText(String.valueOf('\u0f4b'));
    setForeground(Color.BLACK);
  }
}

Это то, что я получаю. Ничего.

JButton

Любая помощь очень ценится.

ИЗМЕНИТЬ: см. ответ ниже.

4b9b3361

Ответ 1

Думаю, я решил это на самом деле. Правильный символ \uf04b не \u0f4b. Упс!:)

Теперь это работает для меня.

JButton with Play Icon

Ответ 2

Попробуйте jIconFont (Swing или JavaFX) в http://jiconfont.github.io/

Пример:

Icon icon = IconFontSwing.buildIcon(FontAwesome.FLOPPY_O, 15);

JButton button = new JButton(icon);