Java Swing JLabel,HTML和自定义字体

Bv2*_*202 5 html java fonts swing jlabel

在我们的Java Swing应用程序中,我们正在加载自定义字体并将其添加到JLabel:

try {
  this.font = Font.createFont(Font.TRUETYPE_FONT, new File("resources/fonts/ourcoolfont.ttf")).deriveFont(16f);
} catch (Exception e) {
  this.font = new Font("Arial", Font.PLAIN, 16);
}
this.label.setFont(this.font);
Run Code Online (Sandbox Code Playgroud)

在3种不同的系统上轻松完美.直到有人试图运行它.字体被加载(因为我们也在其他一些Swing元素上使用),但没有使用JLabel.

经过一番搜索,我发现你不能同时使用HTML和加载的字体.由于某些原因,它适用于我的系统(我认为它与Java版本有关),但不适用于其他一些系统.由于我们希望项目在过时的Java版本中工作,因此只是要求更新不是一种选择.

一种选择是在计算机上安装字体,这是我们不喜欢做的事情.我发现的最佳解决方案是: 如何创建既有样式又有自定义字体的Java/Swing文本组件?

但是,这个问题是关于a JTextPane.A JLabel似乎没有getStyledDocument()我可以使用的方法.

有没有办法让我们的字体与JLabel

Joo*_*gen 10

要使用某些字体:

<html><head><style type="text/css">
body { font-family: Cool; } </style></head><body>...
Run Code Online (Sandbox Code Playgroud)

您创建的字体必须首先在单例GraphicsEnvironment中注册才能被所有人访问:

GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment();
genv.registerFont(font);
Run Code Online (Sandbox Code Playgroud)