图形和Graphics2D之间的区别是什么?

12

Graphics和Graphics2D有什么区别?
Graphics2D是否是Graphics的扩展?

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    g.drawRect(25, 25, 20, 20); //use Graphics to paint rectangle
    Graphics2D g2 =(Graphics2D)g;
    g2.drawRect(0, 0, 20, 20); // use Graphics2D to paint rectangle
}

这实际上是具有AffineTransform类方法的Graphics类。 - Marcus Becker
1个回答

19

图形本身是一个抽象类,因此您无法创建其实例。它仅定义了一些接口和一些功能,因此可以由其他类扩展。

因此,即使是在paintComponent中用作参数的Graphics g也不仅仅是Graphics。标准Java库只有两个扩展类:DebugGraphics,Graphics2D,因此您使用的Graphics g是存储在Graphics g中的Graphics2D实例。

如果不是这样,那么Graphics2D g2 =(Graphics2D)g;将会出现错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接