Добавить значки в JButton, используя собственный шрифт из AwesomeFont и символы юникода в 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

Будем признательны за любую помощь.

РЕДАКТИРОВАТЬ: см. ответ ниже.

13
задан merv 22 July 2012 в 23:56
поделиться