0

Graphics2D は、paintComponent() が呼び出されるたびにコンポジションをリセットしますか? なぜ?

例えば、

public void paintComponent(Graphics g)

    {
    Graphics2D g2 = (Graphics2D)g;
    System.out.println(((AlphaComposite)g2.getComposite()).getAlpha()); //printing alpha value before setting composition
    g.drawImage(background,0,0,500,500,null);
    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
    g.setColor(Color.RED);
    g.fillOval(x-100,y-100,200,200);
    System.out.println(((AlphaComposite)g2.getComposite()).getAlpha()); //printing alpha value after setting composition
}

上記のコードは、paintComponent() が数回呼び出されると次のように出力します...

1.0

0.5

1.0

0.5

1.0

0.5

1.0

0.5

これは、paintComponent() の後に graphics2D がコンポジションをリセットすることを意味しますか? なぜそれを行う必要があるのですか?

4

1 に答える 1