Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing JLabel、HTML和自定义字体_Java_Html_Swing_Fonts_Jlabel - Fatal编程技术网

Java Swing JLabel、HTML和自定义字体

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

在我们的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);
简单,在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);