package howto; import java.awt.*; public class FigPoly extends java.applet.Applet implements Figure { private Panel p; private CardLayout cl; private NewCanvas nc; private Choice ch; public void init() { setBackground(Color.white); setLayout(new BorderLayout()); Panel p1; p = new Panel(); p.setLayout(cl = new CardLayout()); p.add("Polygon", p1 = new Panel()); p1.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); p1.add(new Label("drawPolygon ( ... )")); p.add("Filled Polygon", p1 = new Panel()); p1.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); p1.add(new Label("fillPolygon ( ... )")); add("North", p); nc = new NewCanvas(this); add("Center", nc); p1 = new Panel(); p1.add(new Button("Draw")); ch = new Choice(); ch.addItem("Polygon"); ch.addItem("Filled Polygon"); p1.add(ch); add("South", p1); } public void paintCallback(Graphics g) { Polygon pg = new Polygon(); pg.addPoint(220, 30); pg.addPoint(300, 35); pg.addPoint(320, 95); pg.addPoint(275, 70); pg.addPoint(210, 100); pg.addPoint(180, 50); if (ch.getSelectedItem().equals("Polygon")) g.drawPolygon(pg); else if (ch.getSelectedItem().equals("Filled Polygon")) g.fillPolygon(pg); } public boolean action(Event e, Object o) { if (o.equals("Draw")) { nc.repaint(); return true; } else if (o.equals("Polygon")) { cl.show(p, (String)o); nc.repaint(); return true; } else if (o.equals("Filled Polygon")) { cl.show(p, (String)o); nc.repaint(); return true; } return false; } public Dimension preferredSize() { return new Dimension(500, 200); } public static void main(String [] args) { Frame f = new Frame("Rectangle"); FigPoly fp = new FigPoly(); fp.init(); f.add("Center", fp); f.pack(); f.show(); } }