Java Swing JLabel、HTML和自定义字体
在我们的Java Swing应用程序中,我们正在加载一个自定义字体并将其添加到Java Swing JLabel、HTML和自定义字体,java,html,swing,fonts,jlabel,Java,Html,Swing,Fonts,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
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);
简单,在3个不同的系统上工作良好。直到有人试图运行它。该字体已加载(我们还在其他一些Swing元素上使用),但未在JLabel
中使用
经过一些搜索,我发现你不能同时使用HTML和加载的字体。出于某些原因,它可以在我的系统上运行(我假设它与Java版本有关),但在其他一些系统上不起作用。由于我们希望该项目能够在过时的Java版本中工作,因此不能只要求更新
一个选择是在计算机上安装字体,这是我们不喜欢做的事情。我找到的最佳解决方案是:
然而,这个问题是关于JTextPane
的。一个JLabel
似乎没有一个getStyledDocument()
方法可以用于此
有没有办法让我们的字体与JLabel
一起工作?因为扩展,您可以使用JTextField
的方法来实现它。使用一些字体:
<html><head><style type="text/css">
body { font-family: Cool; } </style></head><body>...
谢谢仅仅注册似乎就足以解决问题:)
GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment();
genv.registerFont(font);