In: Computer Science
Implement an application that will read data from an input file, interpret the data, and generate the output to the screen.
- The application will have two classes, Rectangle and Lab2ADriver.
- Name your Eclipse project, Lab2A.
Implement the Rectangle class with the following description.
| 
 Rectangle  | 
|
| 
 Data fields  | 
|
| 
 -numRows: int -numCols: int -filled: Boolean  | 
 Store the number of rows in the Rectangle Store the number of columns in the Rectangle Will define either a filled or unfilled rectangle True = filled, False = unfilled  | 
| 
 Methods  | 
|
| 
 +Rectangle() +Rectangle(int, int) +Getter methods +Setters methods +toString(): String  | 
 Initialize rows, columns to 1 and filled to false Input values will set the numRows & numCols Create and return a String for output For example when numCols = 4, numRows = 3, filled = false The method creates and returns the string ####  | 
- Implement Lab2ADriver class with the following description. The Lab2ADriver class:
- Contains the main method.
- Contains an object array that will hold Rectangle objects.
- Reads in the text file “rectangleData.txt” that starts with the total number of lines in the file followed by data for constructing a Rectangle object.
- With the data read from the file, construct Rectangle object, and store it to the object array.
- Prints Rectangle objects to the screen accordingly.
For example
  | 
rectangleData.txt
Output
###
###
###
###
###
###
######
# #
######
####
####
####
####
######
# #
# #
# #
# #
######
####
####
####
####
####
####
####
####
####
########
# #
# #
########
Lab2ADriver.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Lab2ADriver {
   public static void main(String[] args) throws
FileNotFoundException {
       Scanner scan = new Scanner(new
File("D:\\rectangleData.txt"));
       Rectangle r[] = new
Rectangle[scan.nextInt()];
       for(int i=0; i<r.length;
i++){
           int rows =
scan.nextInt();
           int cols =
scan.nextInt();
           String filled =
scan.next();
          
           r[i] = new
Rectangle(rows, cols);
          
if(filled.equals("filled")){
          
r[i].setFilled(true);  
           }
           else{
          
    r[i].setFilled(false);  
           }
       }
       for(int i=0; i<r.length;
i++){
      
System.out.println(r[i].toString());
       System.out.println();
       }
   }
}
Rectangle.java
public class Rectangle {
   private int numRows;
   private int numCols;
   private boolean filled;
   public Rectangle(int rows, int cols){
       numCols = cols;
       numRows = rows;
      
   }
   public Rectangle(){
       numCols = 1;
       numRows = 1;
       filled = false;
   }
   public int getNumRows() {
       return numRows;
   }
   public void setNumRows(int numRows) {
       this.numRows = numRows;
   }
   public int getNumCols() {
       return numCols;
   }
   public void setNumCols(int numCols) {
       this.numCols = numCols;
   }
   public boolean isFilled() {
       return filled;
   }
   public void setFilled(boolean filled) {
       this.filled = filled;
   }
   public String toString(){
       String s = "numCols = "+numCols+",
numRows = "+numRows+", filled = "+filled+"\n";
       if(filled){
       for(int i=0; i<numRows ;
i++){
           for(int j=0;
j<numCols; j++){
          
    s = s + "# ";
           }
           s = s +
"\n";
       }
       }
       else{
           for(int i=0;
i<numRows ; i++){
          
    for(int j=0; j<numCols; j++){
          
        if(i==0 || i ==
numRows-1){
          
        s = s + "# ";
          
        }
          
        else{
          
            if(j==0 ||
j==numCols-1){
          
            s = s + "#
";
          
            }
          
           
else{
          
           
    s = s + " ";
          
            }
          
        }
          
    }
          
    s = s + "\n";
          
}  
       }
       return s;
   }
}
Output:
numCols = 3, numRows = 6, filled = true
# # #
# # #
# # #
# # #
# # #
# # #
numCols = 6, numRows = 3, filled = false
# # # # # #
# #
# # # # # #
numCols = 4, numRows = 4, filled = true
# # # #
# # # #
# # # #
# # # #
numCols = 6, numRows = 6, filled = false
# # # # # #
# #
# #
# #
# #
# # # # # #
numCols = 4, numRows = 9, filled = true
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
numCols = 8, numRows = 4, filled = false
# # # # # # # #
# #
# #
# # # # # # # #