用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();
}
}
}