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); } }