import java.awt.*;
import java.awt.geom.*;

public class TestMyComposite {
	public static void main (String[] args) {
		
		//Fenster erzeugen
		MyFrame frame = new MyFrame( "My Composite", 600,430 ) {
			public void paint(Graphics g) {
				//Upcast --> mehr Funktionen in Graphics2D
				Graphics2D g2d=(Graphics2D)g;
				//Antialiasing:
				g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING,
						      RenderingHints.VALUE_ANTIALIAS_ON
						);
				
				//setzen der eigenen Kompositionsregel
				g2d.setComposite( new MyComposite() );
				
				//geometrische, sich überschneidende Figuren:
				Rectangle2D r1 = new Rectangle2D.Float(50,50,300,300);
				Ellipse2D e1 = new Ellipse2D.Float(150,150,400,250);
				RoundRectangle2D r2 = new RoundRectangle2D.Float( 30, 80, 250,130,20,20);
				Font f1 = new Font("Times New Roman",Font.ITALIC,110);

				//	Die Figuren füllen:
				g2d.setPaint( new GradientPaint( 50,50, new Color( 255,138,1 ),
								 250,250,
								 new Color( 255,215,173 )
								)
						);
				g2d.fill( r1 );
				
				g2d.setPaint( Color.blue );
				g2d.fill( e1 );
				
				g2d.setPaint( Color.green );
				g2d.fill( r2 );
				
				//String ausgeben
				g2d.setPaint( Color.magenta );
				g2d.setFont( f1 );
				g2d.drawString( "Komposition",10,110 );
			}
		};
		
	}
}
