import java.util.*; import javax.swing.*; import java.awt.event.*; import java.awt.*; public class Shapes1 extends JApplet { JTextArea Xout = new JTextArea(5, 20); public void init() { Container cp = getContentPane(); cp.setLayout(new FlowLayout()); cp.add(new JLabel("Shapes")); cp.add(new JScrollPane(Xout)); ArrayList s = new ArrayList(); s.add(new Circle()); s.add(new Square()); s.add(new Triangle()); Iterator e = s.iterator(); while(e.hasNext()) ((XShape)e.next()).draw(); } class XShape { void draw() { Xout.append(this + " Generic Draw\n"); } } class Circle extends XShape { public String toString() { return "Circle"; } void draw() { Xout.append("Circle Specfic Draw\n"); } } class Square extends XShape { public String toString() { return "Square"; } } class Triangle extends XShape { public String toString() { return "Triangle"; } } }