1. ホーム
  2. java

[解決済み] GraphicsとGraphics2Dの違い?

2022-02-08 09:32:14

質問事項

とはどのような違いがあるのでしょうか? グラフィック グラフィックス2D ?
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
}

解決方法は?

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

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

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