字体真棒与swing
是否可以将Font Awesome与swing应用程序一起使用? 如果可能,那么如何将其图标与swing组件(JButton或JLabel)一起使用。 我之前在Primefaces应用程序中使用过Font Awesome。
在http://jiconfont.github.io/上试试jIconFont(Swing或JavaFX)
例:
Icon icon = IconFontSwing.buildIcon(FontAwesome.SMILE_O, 40, new Color(0, 150, 0)); JLabel label = new JLabel(icon);
我会说“是”……
- 从Font Awesome下载zip包
- 解压缩它
- 将
fontawesome-webfont.ttf
文件复制到您的项目中(在下面的示例中,我将其用作嵌入式资源) - 使用Cheeatsheet ,将要使用的图标复制并粘贴到代码中
- 加载字体和显示…
例如…
import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.FontFormatException; import java.awt.GridBagLayout; import java.io.IOException; import java.io.InputStream; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class TestFontAwsome { public static void main(String[] args) { new TestFontAwsome(); } public TestFontAwsome() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } try (InputStream is = TestFontAwsome.class.getResourceAsStream("/fontawesome-webfont.ttf")) { Font font = Font.createFont(Font.TRUETYPE_FONT, is); font = font.deriveFont(Font.PLAIN, 24f); JLabel label = new JLabel("?"); label.setFont(font); JFrame frame = new JFrame("Testing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new GridBagLayout()); frame.add(label); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } catch (IOException | FontFormatException exp) { exp.printStackTrace(); } } }); } }
您也可以直接使用unicode,例如,上例中的符号列为
可以用作……
JLabel label = new JLabel("\uf0c0");