这是我的代码:
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g.drawString("This is my string", 200, 200);
}
这正常工作;文字出现了反偏见。但是,为什么起作用?文本是由G对象绘制的,但是据我所知,G2对象的抗声明已打开。g对象如何得到它?
Graphics2D g2 = (Graphics2D) g;
g 和 g2 都是对同一对象(g)的引用。g将对象称为 graphics2d ,而g2表示对象为 graphics2d 。
g
和 g2
都是对同一对象的引用。在运行时,引用的类型并不重要 - 您的对象运行了一种方法。