import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.Graphics2D;
import javax.swing.*;
import chapman.graphics.JCanvas;


public class DrawBox extends JCanvas {

    public void paintComponent(Graphics g) {
        Graphics2D g2=(Graphics2D) g;

        Rect r1 = new Rect(1,1,200,200);
        Rect r2 = new Rect(20,30,250,145);
        Rect r3 =  r1.union(r2);

        DrawableRect dr1 = new DrawableRect(r1);
        DrawableRect dr2 = new DrawableRect(r2);
        DrawableRect dr3 = new DrawableRect(r3);

        dr1.draw(g2);
        dr2.draw(g2);
        dr3.draw(g2);
        

        g2.drawString(dr3.toString(),dr3.getxCenter(),dr3.getyCenter());

        Rect r4 = new Rect(150,250,300,350);
        ColoredRect cr4 = new ColoredRect(r4, Color.blue, Color.red);
        
        cr4.draw(g2);
        g2.drawString(cr4.toString(),cr4.getxCenter(),cr4.getyCenter());
    }
    
    public static void main(String s[]) {
        MyWindowListener l = new MyWindowListener();
        DrawBox b = new DrawBox();
        JFrame f = new JFrame("Draw Box...");

        f.addWindowListener(l);
        f.getContentPane().add(b, BorderLayout.CENTER);
        f.setSize(400,400);
        f.setVisible(true);
    }
}

class MyWindowListener extends WindowAdapter {

    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}