【问题标题】:Drawing strings with custom fonts draws an assortment of dashes使用自定义字体绘制字符串会绘制各种破折号
【发布时间】:2013-01-01 14:45:16
【问题描述】:

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

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

然后主菜单是这样的:

而不是这样:

注意:我正在使用代码

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

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

【问题讨论】:

  • 似乎第一个使用的字体大小为 1px。为了尽快获得更好的帮助,请发帖SSCCE

标签: java swing fonts awt


【解决方案1】:

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

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

【讨论】:

  • 你,先生,太棒了。我想破折号仍然是字母,只是格式很小?
  • 是的。正如@Andrew Thompson 和 shuangwhywhy 指出的那样,它们的点大小为 1。
【解决方案2】:

API spec 说:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多