Question: I need help on part of my programming assignment. What I need to do is: In the load method for the DrawProgram class add a

I need help on part of my programming assignment.

What I need to do is:

In the load method for the DrawProgram class add a case for Polygons

the format is for a polygon is: "POLYGON,color,filled,numberPoints,x0,y0,x1,y1,x2,y2,"

Here is my polyogn class

public void polygon(int []x, int[]y){ this.xPoints=x; this.yPoints=y; }

Here is the load method. I have all the cases except the case POLYGON. Help with completing this would be nice. I know there needs to be some kind of while loop to determine the fields. Here is the Polygon.txt file

# polygons.txt

POLYGON,3FF098,filled,6,50,80,70,20,20,60,80,60,30,20,50,80 POLYGON,CF1294,filled,5,50,350,120,300,90,330,150,360,50,350

*Need help just on the polyogon at the bottom

public static ArrayList load(String filename) {

ArrayList primitives = new ArrayList<>(); try { Scanner scan = new Scanner(new File(filename)); while (scan.hasNextLine()) {

int x0,y0,x1,y1,x2,y2,width,height,radius;

// Read and parse line String line = scan.nextLine(); String[] fields = line.split(","); if (fields.length == 0) continue; // discard empty

// Interpret primitives switch (fields[0]) { case "TEXT": x0 = Integer.parseInt(fields[3]); y0 = Integer.parseInt(fields[4]); Text text = new Text(x0, y0 , fields[2]); text.setColor(Integer.parseInt(fields[1], 16)); text.setFont(fields[5], Integer.parseInt(fields[6])); primitives.add(text); break;

case "SQUARE": x0 = Integer.parseInt(fields[2]); y0 = Integer.parseInt(fields[3]); Square square = new Square(x0, y0, Integer.parseInt(fields[4])); square.setColor(Integer.parseInt(fields[1], 16)); square.setFilled(fields[5].equals("filled")); primitives.add(square); break;

case "RECTANGLE": x0 = Integer.parseInt(fields[2]); y0 = Integer.parseInt(fields[3]); width = Integer.parseInt(fields[4]); height = Integer.parseInt(fields[5]); Rectangle rect = new Rectangle(x0, y0, width, height); rect.setColor(Integer.parseInt(fields[1], 16)); rect.setFilled(fields[6].equals("filled")); primitives.add(rect); break;

case "TRIANGLE" : x0 = Integer.parseInt(fields[2]); y0 = Integer.parseInt(fields[3]); x1 = Integer.parseInt(fields[4]); y1 = Integer.parseInt(fields[5]); x2 = Integer.parseInt(fields[6]); y2 = Integer.parseInt(fields[7]); Triangle triangle = new Triangle(x0,y0,x1,y1,x2,y2); triangle.setColor(Integer.parseInt(fields[1],16)); triangle.setFilled(fields[8].equals("filled")); primitives.add(triangle); break; case "CIRCLE" : x0 = Integer.parseInt(fields[2]); y0 = Integer.parseInt(fields[3]); Circle circle = new Circle(x0,y0,Integer.parseInt(fields[4])); circle.setColor(Integer.parseInt(fields[1],16)); circle.setFilled(fields[5].equals("filled")); primitives.add(circle); break; case "OVAL" : x0 = Integer.parseInt(fields[2]); y0 = Integer.parseInt(fields[3]); width = Integer.parseInt(fields[4]); height = Integer.parseInt(fields[5]); Oval oval = new Oval(x0,y0,width,height); oval.setColor(Integer.parseInt(fields[1],16)); oval.setFilled(fields[6].equals("filled")); primitives.add(oval); break; //case "POLYGON": ??? // x =Integer.parseInt(fields[]); // y =Integer.parseInt(fields[]); *It must be Polygon polygon = new Polygon(x,y); *Cant be anythng like Polygon(x,y,z) //while // break; } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!