当前位置: 首页 > 面试题库 >

如何使Java可以使用任意字体文件?

司空海荣
2023-03-14
问题内容

我正在使用一个第三方库,该库通过GraphicsEnvironment:getAllFonts()调用来访问字体。这包括属于JRE和操作系统的字体注册表中的字体。

但是在连接到我们服务器的客户端计算机上,我很可能无法在这些位置中的任何一个中安装字体。那么,如何使JRE可以使用其他字体,以便此调用将它们选中呢?有没有办法扩大其搜索路径?

我可以使用Font.createFont()调用从任意文件访问字体。但是,它仍然没有显示在GraphicsEnvironment.getAllFonts()中。有没有一种我可以将该字体传递给它的方法,该方法会将其添加到可用字体列表中?我读到有一些调用可以从系统属性访问字体,但我仍然不了解,我认为这只是将我设置的字体属性从可用列表中转换为字体名称。

asalamon提供了正确的答案,但是至少在明年之前,我会停留在不支持Java的早期版本上。因此,仍然欢迎更多答案!我可能会尝试使用反射来破解我们正在使用的库,并将字体直接插入其缓存中。


问题答案:

使用GraphicsEnvironment.registerFont。(对于JDK
1.6)



 类似资料:
  • 我有一个X字体字符串(如Arial字体)在定义宽度值时具有Y高度,这样字符串就可以进入多行。我需要计算所需的高度,以便所需的字符串可以适合它。Apache POI中的行自动大小是不可能的,因为我需要行合并单元格中存在的富文本字符串(任何字体和高度)的高度,在这种情况下自动大小不起作用。

  • 我正在使用Amazon的DynamoDBMapperJava类将数据保存到DynamoDB表中。该代码需要以多种不同的方式对数据进行结构化处理,因此我不想编写特定于结构的代码。出于这个原因,我将代码存储为Java的JSON对象——基本上是荣耀的HashMaps。 我想将这些JSON对象作为Dynamo相对较新的JSON文档类型存储到Dynamo中。 DynamoDBMapper API的工作方式基

  • 我试着有两个文件。 第一个在应用程序JAR的根文件夹上。 第二个在类路径中指定的目录上。 2个文件都名为“Application.Properties”。 事实上,Jar版本的行为是正确的。这是java.exe的规范。当指定-jar选项时,java.exe同时忽略-CLASSPATH选项和CLASSPATH环境变量,并且类路径将只包含jar文件。因此,类路径上的第二个application.pro

  • 我试图从csv得到最小值,但是csv上的一些值给了我一个这是我使用的代码 当我运行这个方法时,我用try/catch将它四舍五入,但它仍然不是解决方案,我想替换或忽略所有特殊字符,这是给我错误的一行:

  • 问题内容: 是否可以用来捕获任意一组可选参数? 例如,以下两个都应被接受为输入: 先验的 我不知道会指定哪些可选参数,但是会相应地处理它们。 问题答案: 这是一种黑客手段,但效果很好: 检查未添加的参数并添加它们 例如: 那么结果将是

  • 是否可以用交易发送任意文本? 是的。文本应该是ASCII编码的,并在交易的数据中以十六进制字符串的形式提供。示例如下: RawTransaction.createTransaction( <nonce>, GAS_PRICE, GAS_LIMIT, "0x<address>", <amount>, "0x<hex encoded text>"); byte[] signedMes