首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中使用自定义字体?

如何在Java中使用自定义字体?
EN

Stack Overflow用户
提问于 2011-04-14 00:16:52
回答 4查看 117.9K关注 0票数 55

我用Java编写了一个程序,它使用了一种默认情况下在任何操作系统上都不存在的特殊字体。

在Java中可以将这种特殊的字体添加到操作系统中吗?例如,在Windows中,将此字体复制到特殊字体文件夹。

如果可能,如何实现?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-14 00:20:07

如果包含字体文件(otf、ttf等)在您的包中,您可以通过如下所述的方法在应用程序中使用字体:

Oracle Java SE 6: java.awt.Font

下面是一个来自Oracle的tutorial available,显示了这个示例:

代码语言:javascript
运行
复制
try {
     GraphicsEnvironment ge = 
         GraphicsEnvironment.getLocalGraphicsEnvironment();
     ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
} catch (IOException|FontFormatException e) {
     //Handle exception
}

我可能会将其封装在某种资源加载器中,这样就不会在您每次想要使用它时都从包中重新加载它。

与您的原始问题更密切相关的答案是,将字体作为应用程序安装过程的一部分进行安装。该过程将取决于您选择的安装方法。如果它不是桌面应用程序,你必须查看提供的链接。

票数 62
EN

Stack Overflow用户

发布于 2013-07-08 02:25:57

这就是我是如何做到的!

代码语言:javascript
运行
复制
//create the font

try {
    //create the font to use. Specify the size!
    Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("Fonts\\custom_font.ttf")).deriveFont(12f);
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    //register the font
    ge.registerFont(customFont);
} catch (IOException e) {
    e.printStackTrace();
} catch(FontFormatException e) {
    e.printStackTrace();
}

//use the font
yourSwingComponent.setFont(customFont);
票数 19
EN

Stack Overflow用户

发布于 2011-04-14 00:22:40

Java tutorial中,您需要创建一个新字体并将其注册到图形环境中:

代码语言:javascript
运行
复制
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));

完成此步骤后,可以在对getAvailableFontFamilyNames()的调用中使用该字体,并且可以在字体构造函数中使用该字体。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5652344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档