我试图使用自定义fon,但由于某种原因它不会渲染,也不会抛出任何异常。 我已经查看了其他类似的问题,解决方案是将它添加到我所做的图形环境中。
public static Font font;
public static void main(String[] args) {
try{
font = Font.createFont(Font.TRUETYPE_FONT, new File("myFont.ttf"));
}
catch (Exception ex) {
System.out.println("ex");
}
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Main ex = new Main();
ex.setVisible(true);
}
});
}
我稍后会使用这个字体,
public void draw(Graphics g, ImageObserver o){
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(bg, 0, 0, (int) Board.w, (int) Board.h, o);
New.draw(g2d,o);
Load.draw(g2d,o);
Quit.draw(g2d,o);
g2d.setFont(Main.font);
g2d.drawString("Test Text",0,0);
}
但那里什么都没有。
编辑:我已添加
JList fonts = new JList( ge.getAvailableFontFamilyNames() );
JOptionPane.showMessageDialog(null, new JScrollPane(fonts));
来自建议注册字体的相同示例,我可以在那里看到我的字体。
答案 0 :(得分:1)
尝试:
try{
font = Font.createFont(Font.TRUETYPE_FONT, new File("myFont.ttf"));
font = font.deriveFont(30F);
}
catch (Exception ex) {
ex.printStackTrace();
}
其中' 30F'是字体大小的浮点类型。