使用AwesomeFont中的自定义字体和Java Swing中的unicode字符向JButton添加图标?

我有一个JButton,我想添加一个图标。 我想使用FontAwesome中提供TrueType字体文件的基于字体的图标。 我想添加的图标是播放按钮图标。 FontAwesome的css文件中的播放按钮图标是\f04b ,我在Java \f04b其转换为\uf04b

这就是我在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

任何帮助深表感谢。

编辑:见下面的答案。

我想我实际上解决了这个问题。 正确的字符是\uf04b而不是\u0f4b 。 哎呦! 🙂

这对我现在很有用。

带有播放图标的JButton

在http://jiconfont.github.io/上试试jIconFont(Swing或JavaFX)

例:

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