Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

For this homework, you will write a Java class that reads through a text file of

ID: 3682457 • Letter: F

Question

For this homework, you will write a Java class that reads through a text file of drawing commands and draws the appropriate shapes onto JFrames. The following commands must be supported

FRAME width height                          // sets up a new frame with given width and height (both integers)

COLOR red green blue                       // sets the current “pen color” to the color with the given rgb components.

RECTANGE x y width height           // draws a rectangle with upper left corner at x,y and given width and height (all // given in integers)

CIRCLE x y radius                             // draws a circle centered at x,y with given radius (as doubles)

ELLIPSE x y xradius yradius            // draws an ellipse centered at x,y with semi-radii xradius and yradius (Note:   

// these parameters are slightly different than that in Ellipse2D.Double’s
// constructor.

LINE x1 y1 x2 y2                               // draws a line from x1,y1 to x2,y2 (as doubles)

A sample command paint_instructions.txt file is as follows.

FRAME 200 100                                 // open a frame, note: parser must ignore any comments

COLOR 255 0 0                                   // set color to red

RECTANGLE 20 30 40 20                // draw a red rectangle

COLOR 128 128 128                         // set color to gray

CIRCLE 100 50 25                             // draw a gray circle

FRAME 100 100                                 // open a second frame

COLOR 0 0 255                                   // set color to blue

ELLIPSE 50 50 30 20                        // draw a blue ellipse

COLOR 0 255 0                                   // set color to green

LINE 10 20 90 80                               // draw a green line

For simplicity, there should be only one command per line which may end in a comment as shown above.

Your program should read commands and set up appropriate GUI structures in the Java Swing environment. If a command has a syntax error, then your program should detect this and print out a message to the output console indicating the line number from your command file that had the error. Hint: there is an easy way to do this by catching runtime exceptions that are thrown in a try block.

Explanation / Answer

import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.Shape; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Scanner; import javax.swing.JComponent; import javax.swing.JFrame; public class Driver { private static Frame frame; private static Component component; private static Color currentColor = Color.BLACK; private static Shape currentShape; private static int frameNo = 0; private static int lineNo = 0; private static ArrayList frames = new ArrayList(); public static void main(String[] args) throws FileNotFoundException { Scanner scan = new Scanner(System.in); System.out.println("Please enter the file name to read the drawing instructions from: "); String fileName = scan.next(); scan.close(); scan = new Scanner(new File(fileName)); while(scan.hasNext()) { lineNo++; process(scan.nextLine()); } scan.close(); for (int i = 0; i
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote