import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.io.InputStream; import java.io.InputStreamReader; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.util.StringTokenizer; import java.net.URL; import java.net.URLConnection; import java.net.MalformedURLException; /** Draw shapes with random type, position, size and color. */ public class DrawShapesApplet extends Applet { public void paint(Graphics g) { String filename = getParameter("filename"); URL fileURL = null; URLConnection connection = null; InputStream in = null; try { fileURL = new URL(getDocumentBase(), filename); } catch (MalformedURLException e) { System.out.print(e); } try { connection = fileURL.openConnection(); in = connection.getInputStream(); } catch (IOException e) { System.out.print(e); } BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; try { while ((line = reader.readLine()) != null) { StringTokenizer st = new StringTokenizer(line); String command = st.nextToken(); if (command.equals("color")) { int cr = Integer.parseInt(st.nextToken()); int cg = Integer.parseInt(st.nextToken()); int cb = Integer.parseInt(st.nextToken()); g.setColor(new Color(cr,cg,cb)); } else if (command.equals("line")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); g.drawLine(x,y,w,h); } else if (command.equals("rectangle")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); g.fillRect(x,y,w,h); } else if (command.equals("drawRectangle")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); g.drawRect(x,y,w,h); } else if (command.equals("oval")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); g.fillOval(x,y,w,h); } else if (command.equals("drawOval")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); g.drawOval(x,y,w,h); } else if (command.equals("arc")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); int a0 = Integer.parseInt(st.nextToken()); int a = Integer.parseInt(st.nextToken()); g.fillArc(x,y,w,h,a0,a); } else if (command.equals("drawArc")) { int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); int w = Integer.parseInt(st.nextToken()); int h = Integer.parseInt(st.nextToken()); int a0 = Integer.parseInt(st.nextToken()); int a = Integer.parseInt(st.nextToken()); g.drawArc(x,y,w,h,a0,a); } } } catch (IOException e) { System.out.print(e); } } }