我有一个JButton,我想为它添加一个图标。我想使用FontAwesome中提供TrueType字体文件的基于字体的图标。我想添加的图标是播放按钮图标。 FontAwesome的css文件中的播放按钮图标是\f04b
,我认为它可以转换为Java中的\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);
}
}
这就是我得到的。什么都没有。
非常感谢任何帮助。
编辑:见下面的答案。
答案 0 :(得分:12)
我想我实际上解决了这个问题。正确的字符是\uf04b
而非\u0f4b
。哎呦! :)
这对我现在很有用。
答案 1 :(得分:1)
示例:
Icon icon = IconFontSwing.buildIcon(FontAwesome.FLOPPY_O, 15);
JButton button = new JButton(icon);