2013-10-13 13 views
7

とは何ですか?グラフィックGraphics2Dの違いは何ですか?
Graphics2DがGraphicsの拡張版ですか?グラフィックスとGraphics2Dの違いは?

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 
} 
+0

実際にはAffineTransformクラスのメソッドを持つGraphicsクラスです。 –

答えて

13

グラフィックス自体はabstract classなので、そのインスタンスを作成することはできません。それはいくつかのインタフェースといくつかの機能を定義するだけなので、他のクラスで拡張することができます。

このGraphics gでも、paintComponentのパラメータとして使用されていますが、Graphicsであるだけではありません。標準のJavaライブラリには、DebugGraphics, Graphics2Dという2つの拡張クラスしかないので、Graphics gに格納されているGraphics2Dインスタンスは、Graphics gが使用しています。

そうでない場合、Graphics2D g2 =(Graphics2D)g;行はエラーで終了します。

関連する問題