使用自定义字体绘制字符串会绘制各种破折号

时间:2013-01-17 22:52:31

标签: java swing fonts awt

我正在尝试使用TTF将自定义字体添加到我的Java程序中,但无论出于何种原因,我的字符串都被简单地绘制为破折号,偶尔还有点。例如,如果我使用此代码来定义我的字体:

font = Font.createFont(Font.TRUETYPE_FONT, 
         ac.class.getResourceAsStream("/fonts/verdana.TTF"));

然后主菜单如下:

而不是:

注意:我正在使用代码

Font font = new Font("Verdana", Font.BOLD, 30);

在第二个屏幕截图中定义字体。

2 个答案:

答案 0 :(得分:4)

使用deriveFont方法调整刚刚加载的字体的大小:

font = Font.createFont(Font.TRUETYPE_FONT, 
     ac.class.getResourceAsStream("/fonts/verdana.TTF")).deriveFont(30f);

答案 1 :(得分:4)

API spec说:

  

使用指定的字体类型和输入数据返回新的Font。新的Font是使用 磅值1 创建的,并且样式为PLAIN。然后,此基本字体可与此类中的deriveFont方法一起使用,以派生具有不同大小,样式,变换和字体特征的新Font对象。此方法不会关闭InputStream

     

要使Font Font构造函数可用,必须通过调用FontGraphicsEnviroment中注册返回的registerFont(Font)