/* Practice using layouts Anderson, Franceschi */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class NestedLayoutPractice extends JFrame { private Container contents; private Game game; private BorderLayout bl; private JLabel bottom; // ***** Task 1: declare a JPanel named top // also declare three JButton instance variables // that will be added to the JPanel top // these buttons will determine the grid size of the game: // 3-by-3, 4-by-4, or 5-by-5 // Part 1 student code starts here: private final JPanel top; private JButton [] topButtones; String [] topGridSize = {\"3-by-3\", \"4-by-4\", \"5-by-5\", }; private JButton reset; // Part 1 student code ends here. public NestedLayoutPractice() { super(\"Practicing layout managers\"); contents = getContentPane(); // ***** Task 2: // instantiate the BorderLayout manager bl // Part 2 student code starts here: // set the layout manager of the content pane contents to bl: // bl = new BorderLayout (); (not suer if this is right) //set.BorderLayout(bl); (not suer if this is right) game = new Game(3); // instantiating the GamePanel object // add panel (game) to the center of the content pane // Part 2 student code ends here. bottom = new JLabel(\"Have fun playing this Tile Puzzle game\", SwingConstants.CENTER); // ***** Task 3: // instantiate the JPanel component named top // Part 3 student code starts here: //top = new JPanle ();(not suer if this is right) // set the layout of top to a 1-by-3 grid(not suer if this is right) // panel.setLayout (new GridLayout (3, 1));(not suer if this is right) // instantiate the JButtons that determine the grid size // topButtones [0] = new JButton (\"3-by-3 \"); (not suer if this is right) // add the buttons to JPanel top //top.add (topButtones[0]);(not suer if this is right) //top.add (topButtones[1]); //top.add (topButtones[2]); // add JPanel top to the content pane as its north component c.add(top, \"north\"); // Part 3 student code ends here. // ***** Task 5: // Note: search for and complete Task 4 before performing this task // Part 5 student code starts here: // declare and instantiate an ActionListener //topButtones[0].addActionListnere(this);(not suer if this is right) //topButtones[1].addActionListnere(this); //topButtones[2].addActionListnere(this); // register the listener on the 3 buttons // that you declared in Task 1 // Part 5 student code ends here. contents.add(bottom, BorderLayout.SOUTH); setSize(325, 325); setVisible(true); } // ***** Task 4: // create a private inner class that implements ActionListener // your method should identify which of the 3 buttons // was the source of the event // depending on which button was pressed, // call the setUpGame method of the Game class // with arguments 3, 4, or 5 // the API of that method is: // public void setUpGame(int nSides) // At the end of the method call validate() // Part 4 student code starts here: public void actionPreformed(ActionEvent ae) { if (ae.getActionCommand(). equ.