OpenJDK8编译后遇到字体绘制问题? 400 报错
用OpenJDK8最新版本开源代码 + Win7环境,编译OpenJDK8版本,字体用宋体,分别在16榜时倾斜,缩放,旋转时,视图绘制有错,现象如下图:
哪位大侠遇到过?如何解决的请告知,谢啦
测试代码如下:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.WindowEvent;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class TestJDK extends JFrame {
public static void main(String[] args) {
new TestJDK().setVisible(true);
}
TestJDK()
{
setBounds(100, 100, 600, 400);
getContentPane().add(new MPanel());
}
protected void processWindowEvent(WindowEvent e)
{
switch (e.getID())
{
case WindowEvent.WINDOW_CLOSING:
System.exit(0);
break;
}
}
static class MPanel extends JComponent
{
MPanel()
{
}
public void paint(Graphics g)
{
String ST = "宋体";
String KT = "楷体";
String FontName = ST;
int FontSize = 16;
Graphics2D g2d = (Graphics2D)g.create();
g2d.setFont(new Font(FontName, Font.ITALIC, FontSize));
g2d.setColor(Color.blue);
g2d.drawString("TestItalic:测试斜体1234", 20, 40);
g2d.setFont(new Font(FontName, 0, FontSize));
g2d.scale(2, 1);
g2d.drawString("TestScale:测试缩放1234", 20, 100);
g2d.setFont(new Font(FontName, 0, FontSize / 2));
g2d.scale(0.5, 2);
g2d.drawString("TestScale:测试缩放1234", 20, 100);
g2d.scale(1, 0.5);
g2d.translate(500, 300);
g2d.rotate(-Math.PI / 2);
g2d.setFont(new Font(FontName, 0, FontSize));
g2d.setColor(Color.red);
g2d.drawString("TestRotate:测试旋转1234", 0, 0);
g2d.dispose();
}
}
}
我用 jdk1.8.0_152, 用 JCreator 编译运行你的代码,输出结果似乎没有错。不知你的错误(对汉字字符的斜体、旋转等不起作用)原因从何而来?
不过,OpenJDK 和 JDKde区别,需要看一看: 如,OpenJDK不包含Deployment(部署)功能: OpenJDK源代码不完整:部分源代码用开源代码替换:openjdk只包含最精简的JDK: 不能使用Java商标。 也许,这就是你的java环境, 出问题的原因。
######JDK 运行没有问题,OpenJDK使用开源freetype,运行有误。
######OpenJDK字体处理问题很多,建议用Oracle的JDK
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。