我从 Oracle JDK11 升级到 Oracle JDK 12 和 14,并注意到更高版本(12 和 14)在呈现字体“MS Reference Sans Serif”时似乎有问题。有谁知道为什么以及如何解决?我怀疑它可能与特定字体有关。也许他们在 JDK 12 中放弃了 TrueType、FreeType 或他们使用的任何渲染支持。我没有看到其他字体存在同样的问题。我想我可以简单地更改字体,但我喜欢这种特定的字体,并希望尽可能让它工作。
甲骨文 JDK 11:
甲骨文 JDK 14:
代码:
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JavaFontTest extends JPanel {
public JavaFontTest() {
setBackground(Color.blue);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.setFont(new Font("MS Reference Sans Serif", Font.BOLD, 12));
g.drawString("The Quick Brown Fox", 0, 30);
g.drawString("Jumped over the Well", 0, 60);
}
public static void main(String[] args) {
JFrame jf = new JFrame();
jf.getContentPane().setLayout(new BoxLayout(jf.getContentPane(), BoxLayout.Y_AXIS));
jf.setExtendedState(Frame.MAXIMIZED_BOTH);
jf.add(new JavaFontTest());
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |