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 がコンポジションをリセットすることを意味しますか? なぜそれを行う必要があるのですか?