public class Shapes 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"; }
}
public static void main(String[] args) {
Console.run(new Shapes(), 250, 150);
}
} ///:~