Java字体问题

Dew*_*rld 4 java fonts swing jcomponent

假设我有一个 Swing JComponent,并且我为该 JComponent 的文本设置了一个 Font。我构建项目并创建项目的 .jar 文件。现在,如果我从另一台未安装字体的计算机上运行这个 jar 文件,会发生什么?jar 会自动安装字体还是我需要进行某种检查才能做到这一点?谢谢。

Jon*_*ght 5

如果您需要使用该特定字体,则必须在运行 jar 文件之前确保它已安装在计算机上,或者自行加载。没有任何东西会自动为您安装字体。您可以使用以下代码检索可用字体列表:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String [] fonts = ge.getAvailableFontFamilyNames();
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用自己加载并注册字体

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font f = Font.createFont(Font.TRUETYPE_FONT, new File(pathToYourTTFFile));
ge.registerFont(f);
Run Code Online (Sandbox Code Playgroud)

您应该检查 的返回代码registerFont并捕获/处理 引发的异常createFont