Graphics2D g2 = (Graphics2D) g;
老实说,整个g2和g概念令人困惑。有人能解释一下吗?感谢。
另外,对g和g2之间差异的解释会很好。
答案 0 :(得分:4)
据推测,g
是Graphics
个实例,Graphics2D g2 = (Graphics2D) g;
正在向g
的实例投射Graphics2D
。
这是行动Polymorphism的一个例子......
在Java 1.3 / 1.4中,新的Graphics2D
API被引入到Java API中,但由于大多数绘制方法都需要Graphics
,因此它们没有更新(为了向后兼容)。然而,开发人员基本上保证传递给这些绘制方法的任何系统Graphics
都会获得Graphics2D
上下文的实例
基本上,Graphics2D
是Graphics
API
有关详细信息,请查看Painting in AWT and Swing和Performing Custom Painting
答案 1 :(得分:0)
您在Graphics
中投射了一个名为g
的{{1}}个对象。
这是polymorphism的一个例子。
基本上,图形2d扩展了awt中的图形类。 图形本身是一个抽象类,因此无法创建它,它只定义了一些接口和一些功能。
也许oracle API可以帮助你:
http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html