当前位置: 首页 > 知识库问答 >
问题:

Swing-如何向JTextArea添加自定义字体?

农诚
2023-03-14

我的工具基本上读取PDF并在JTextArea中打印PDF的内容。在我的PDF包含阿拉伯语的PH Mirjan字体之前,一切正常。我的文本区域显示一些垃圾字符,如下所示。

我该如何解决这个问题?

我的文本区域的默认字体是Arial Unicode MS。我可以配置文本区域的字体吗?假设我在本地下载了PH Mirjan,如何将文本区域字体更改为下载的字体。非常感谢任何建议或参考链接。

编辑

try (InputStream is = NewJFrame.class.getResourceAsStream("/GE SS Two Bold.otf")) 
        {
            Font font = Font.createFont(Font.TRUETYPE_FONT, is);
            font = font.deriveFont(Font.PLAIN, 24f);
            jTextArea1.setFont(font);
            jTextArea1.setForeground(Color.BLUE);

这给了我一个例外。

例外

java.awt.FontFormatException:java.nio.BufferUnderflow Exceptionsun.font.TrueTypeFont.init(TrueTypeFont.java:558)在sun.font.TrueTypeFont。(TrueTypeFont.java:191)sun.font.CFontManager.createFont2D(CFontManager.java:161)在java.awt.Font。(Font.java:614)java.awt.Font.createFont0(Font.java:968)java.awt.Font.create字体(Font.java:876)

你知道我为什么会这样吗。?

共有1个答案

孔安阳
2023-03-14

为什么字体名称是. tt而不是. ttf?情况可能是它不是ttf文件或异常发生时已损坏

    try {
        Font NARROW = Font.createFont(Font.TRUETYPE_FONT, this.getClass().getResourceAsStream("/fonts/DSS.ttf"));   
        NARROW = NARROW.deriveFont(17f);       
    } catch (FontFormatException | IOException ex) {
        System.err.println("Exception loading fonts "+ex);
    }

我知道它几乎是相同的代码,请在其他ttf文件上尝试此操作。Exception不应该在那里。

 类似资料:
  • 我正在使用wordpress 4.1与ACF v4。我有一个添加了自定义字段的自定义帖子类型,每次添加新类别时都需要添加新的自定义字段。如果我自动添加类别“轿车”,我必须添加自定义字段“轿车”。我可以使用插件函数执行此操作吗?或者我必须用代码,在数据库中插入来做到这一点?提前致谢!!

  • 我想添加“from”(date)来响应datepicker输入,但到目前为止,我有一些奇怪的行为。 我的代码: 到目前为止,我试过: 和 但这两种解决方案都将我的日期从“2020年9月14日16:43”转变为“从周一9月14 2020 17:19:38格林尼治标准时间0400(留尼汪岛)”,这是不必要的行为,因为我绝对想要法语日期。任何想法?谢啦

  • 我正在尝试添加一个自定义字段到忍者表单(第3.3节)。到处都找不到完整的例子。 仔细查看代码,似乎过滤器'ninja_forms_register_fields'可以起到作用,但我无法让它在任何地方运行。

  • --小注意,我试图上传我的游戏图像来说明我的问题,但我还没有必要的声誉这样做。我对此表示赞同。 如何手动设置swing组件的最终大小和 如何使用布局管理器手动设置out组件的坐标

  • 问题内容: 我正在研究Spring Data JPA。考虑下面的示例,默认情况下我将使所有crud和finder功能正常工作,如果我想自定义finder,那么也可以在界面本身中轻松完成。 我想知道如何为上述AccountRepository的实现添加完整的自定义方法?由于它是一个接口,所以我不能在那里实现该方法。 问题答案: 你需要为自定义方法创建一个单独的接口: 并提供该接口的实现类:

  • 在中有一个方法,但它看起来不像是一个公共API,所以我宁愿不使用它。创建自定义指令并使用看起来是另一种选择,但基本上需要为每个自定义验证规则创建一个指令,而我不希望这样做。 实际上,在最简单的场景中,将控制器中的某个字段标记为无效(同时保持同步)可能是我完成任务所需要的,但我不知道如何做到这一点。