JAVA Assignment using JavaFX Overview For this assignment yo

JAVA Assignment (using JavaFX):

Overview:

For this assignment, you will create a random (10x10) matrix of 1s and 0s as illustrated in the assignment example linked later in these instructions. This program will implement the matrix using JavaFX. You will add additional buttons to the design. One button will set the matrix to all 0s. Another button will set the matrix to all 1s. A third button will reset the matrix to a random assortment of 0s and 1s. A final button will quit the program.

Instructions:

Create three buttons at the top of the window:

Reset All to 0: This button will reset all the cells to 0.

Reset All to 1: This button will reset all the cells to 1.

Reset Randomly: This button will reset all the cells to random 0s and 1s.

Create a fourth button at the bottom labeled Quit that will end the program and make the matrix disappear. If the button is clicked, or if the user presses the Esc key, the program should end.

The background colors and fonts can be anything you want, except the default colors.

CHI Exercise!4-07 -1- 010100000 11010010 0001001011 000111000 )(| 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1011100100 00000, 1 1 1 1 1 0010100011 0101100110 1010010101 1111000000 0001000001 1100001011

Solution

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class JavaFXMatrixEnhanced extends Application
{
   // These constants are in lieu of user input from either the command line or Swing window
   private static final int MATRIX_HEIGHT = 10;
   private static final int MATRIX_WIDTH = 10;

   private int matrixWidth = MATRIX_HEIGHT;
   private int matrixHeight = MATRIX_WIDTH;
  
   // Initialize the matrix cell type: R = Random, Z = zero or O = one
   String cellType = \"R\";
  
   // Create a border pane to hold the buttons and matrix
   BorderPane bPane;
   GridPane gPane;

   // default constructor
   public JavaFXMatrixEnhanced()
   {
       bPane = new BorderPane();
       bPane.setStyle (\"fx-border-color:navy; -fx-background-color: orange\");
       gPane = createMatrix(matrixWidth, matrixHeight, cellType);
   }
   // constructor to create the Random Matrix
   public JavaFXMatrixEnhanced(int width, int height, String cellType)
   {
       // Set the width and height of the matrix class data fields
       setMatrixWidth (width);
       setMatrixHeight (height);
      
       // create the border pane that contains the matrix & buttons
       bPane = new BorderPane();
       bPane.setStyle (\"fx-border-color:navy; -fx-background-color: orange\");
      
        // create the Matrix
       gPane = createMatrix(width, height, cellType);
   } // end constructor
//--------------------------------------------------------------------------
   // get method to get the width of the matrix
   public int getMatrixWidth()
   {
       return matrixWidth;
   }

//--------------------------------------------------------------------------
   // get method to get the height of the matrix
   public int getMatrixHeight()
   {
       return matrixHeight;
   }

   //--------------------------------------------------------------------------
   // set method to set the width of the matrix
   public void setMatrixWidth(int matrixWidth)
   {
       this.matrixWidth = matrixWidth;
   }

//--------------------------------------------------------------------------
   // set method to set the width of the matrix
   public void setMatrixHeight(int matrixHeight)
   {
       this.matrixHeight = matrixHeight;
   }
//------------------------------------------------------------------------------      
   @Override // Override the start method in the Application class
    public void start (Stage primaryStage)
    {
       // Greet the User & Give information about the program
       greetUser();
      
       // Create a Random 10 x 10 matrix - default
       JavaFXMatrixEnhanced matrix = new JavaFXMatrixEnhanced ();      
      
       //Place nodes in the border pane
       bPane.setTop(getHBox(matrix));
       bPane.setCenter(matrix.gPane);
       Button btn = getQuit(primaryStage);
       bPane.setBottom(btn);
       bPane.setAlignment(btn, Pos.CENTER);
                      
       // Create a scene and place it in the stage
       Scene scene = new Scene(bPane);
      
       // Create an register an event handler to end with the ESC key
       scene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>()
       {
             @Override
             public void handle(KeyEvent ke)
             {
                 if(ke.getCode()==KeyCode.ESCAPE)
                 {
                     primaryStage.close(); // close the stage
                 }
              }
       });
      
       primaryStage.setTitle(\"Exercise14_07 Enhanced\"); // set the stage title\"
       primaryStage.setScene(scene); // place the scene in the state
       primaryStage.show(); // Display the stage      
    }

//--------------------------------------------------------------------------
   // method to greet the user
   private void greetUser()
   {
       // Greet the user at the command line and give basic information about the program
       System.out.println (\"Welcome to the Random Matrix program\");
       System.out.println (\"This program creates a matrix of random 0\'s & 1\'s\");
       System.out.println (\"The matrix size will be \" + MATRIX_WIDTH +
                       \" by \" + MATRIX_HEIGHT);
       System.out.println (\"You can change the matrix by selecting a button at the top\");
       System.out.println (\"You can quit using the Quit button or the Escape (ESC) key\");
   }

//--------------------------------------------------------------------------
   // method to create the Matrix of width x height
   public GridPane createMatrix(int width, int height, String cellType)
   {      
       // Create a pane and set its properties
       gPane = new GridPane();
       gPane.setAlignment(Pos.CENTER);
       gPane.setPadding(new Insets (10, 10, 10, 10)); // border padding
       gPane.setHgap(5); // horizontal gap of grid in pixels
       gPane.setVgap(5); // vertical gap of grid in pixels
      
       // Place nodes in the pane
       for (int i = 0; i < MATRIX_WIDTH; i++)
       {
           for (int j = 0; j < MATRIX_HEIGHT; j++)
           {
               gPane.add(createCell(cellType), i, j);
           }
       }
       return gPane;
      
   } // end of createRandomMatrix method
//--------------------------------------------------------------------------  
   // method to create a Matrix cell (TextField)
   private TextField createCell(String cellType)
   {
       String zeroOrOne = \"1\"; // Make default string = 1
      
       // create a random number
       if (\"R\".equals(cellType))
       {
            // round the number to 0 or 1, cast it to an Int and create a string
               zeroOrOne = Integer.toString((int) Math.round(Math.random()));
       }
       else if (\"Z\".equals(cellType))
       {
           zeroOrOne = \"0\";
       }

       // Create the text field with the zeroOrOne string added
       TextField field = new TextField (zeroOrOne);
       field.setPrefColumnCount(1);   // fix the size of the column to 1
       field.setAlignment(Pos.CENTER); // center the number
       field.setStyle(\"-fx-font: 12 arial; -fx-font-weight: bold; \"
               + \"-fx-text-fill: brown; -fx-control-inner-background: #faebd7;\");
      
       return field;
   }
//--------------------------------------------------------------------------
   // method to create the HBox that contains the 3 top buttons
   private HBox getHBox(JavaFXMatrixEnhanced matrix)
   {
       HBox hBox = new HBox (15);
       hBox.setPadding(new Insets(15, 15, 15, 15));
       hBox.setStyle(\"-fx-background-color: blue\");
       Button bt0 = new Button(\"Reset all to 0\");
       bt0.setStyle(\"-fx-font: 12 arial; -fx-font-weight: bold; \"
               + \"-fx-text-fill: brown; -fx-base: #faebd7;\");
       hBox.getChildren().add(bt0);
       Button bt1 = new Button(\"Reset all to 1\");
       bt1.setStyle(\"-fx-font: 12 arial; -fx-font-weight: bold; \"
               + \"-fx-text-fill: brown; -fx-base: #faebd7;\");
       hBox.getChildren().add(bt1);
       Button btR = new Button(\"Reset Randomly\");
       btR.setStyle(\"-fx-font: 12 arial; -fx-font-weight: bold; \"
               + \"-fx-text-fill: brown; -fx-base: #faebd7;\");
       hBox.getChildren().add(btR);
      
       // Create and register the handler for the All Zeros button
       bt0.setOnAction(e -> changeMatrix(matrix.getMatrixWidth(),
               matrix.getMatrixHeight(), \"Z\"));
      
       // Create and register the handler for the All Ones button
       bt1.setOnAction(e -> changeMatrix(matrix.getMatrixWidth(),
               matrix.getMatrixHeight(), \"O\"));
      
       // Create and register the handler for the Random 0\'s & 1\'s button
       btR.setOnAction(e -> changeMatrix(matrix.getMatrixWidth(),
               matrix.getMatrixHeight(), \"R\"));
       return hBox;
   }
//--------------------------------------------------------------------------
   // method to create the quit button at the bottom
   private Button getQuit(Stage primaryStage)
   {
       Button quitBtn = new Button (\"Quit\");
       quitBtn.setStyle(\"-fx-font: 12 arial; -fx-font-weight: bold; \"
               + \"-fx-text-fill: brown; -fx-base: #faebd7;\");
      
       // process the quit event
       quitBtn.setOnAction(e->primaryStage.close());
      
       return quitBtn;      
   }
//--------------------------------------------------------------------------
   private void changeMatrix (int width, int height, String cellType)
   {
       gPane = createMatrix(width, height, cellType);
       bPane.setCenter(gPane);
              
   }
//--------------------------------------------------------------------------  
   // The main method is only needed for the IDE  
   public static void main(String[] args)
   {
       Application.launch (args);
   } // end main

} // end JavaFXMatrixEnhanced class
//-------------------------------------------------------------------------

JAVA Assignment (using JavaFX): Overview: For this assignment, you will create a random (10x10) matrix of 1s and 0s as illustrated in the assignment example lin
JAVA Assignment (using JavaFX): Overview: For this assignment, you will create a random (10x10) matrix of 1s and 0s as illustrated in the assignment example lin
JAVA Assignment (using JavaFX): Overview: For this assignment, you will create a random (10x10) matrix of 1s and 0s as illustrated in the assignment example lin
JAVA Assignment (using JavaFX): Overview: For this assignment, you will create a random (10x10) matrix of 1s and 0s as illustrated in the assignment example lin
JAVA Assignment (using JavaFX): Overview: For this assignment, you will create a random (10x10) matrix of 1s and 0s as illustrated in the assignment example lin

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site