Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

/* 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;

/* 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 JPanel top; JButton three; JButton four; JButton five;

// 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:

top.setLayout(bl);

game = new Game(3); // instantiating the GamePanel object

// add panel (game) to the center of the content pane

contents.add(game, BorderLayout.CENTER);

// 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:

// set the layout of top to a 1-by-3 grid

JPanel top = new JPanel( new GridLayout());

// instantiate the JButtons that determine the grid size

three = new JButton ("3-by-3"); four = new JButton ("4-by-4"); five = new JButton ("5-by-5");

// add the buttons to JPanel top

top.add(three); top.add(four); top.add(five); // add JPanel top to the content pane as its north component

contents.add(top, BorderLayout.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

ButtonHandler bh = new ButtonHandler( );

// register the listener on the 3 buttons // that you declared in Task 1

three.addActionListener(bh); four.addActionListener(bh); five.addActionListener(bh);

// 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:

private class ButtonHandler implements ActionListener { public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == three) { game.setUpGame( 3 ); validate(); } else if (source == four) { game.setUpGame( 4 ); validate(); } else if (source == five) { game.setUpGame( 5 ); validate(); } } } // Part 4 student code ends here.

public static void main(String[] args) { NestedLayoutPractice nl = new NestedLayoutPractice(); nl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

I am drawing a blank on the last portion of Task 4. I know I need to call the function setUpGame() but I just cannot remember how to do it (if I even set up the rest correctly). What am I doing wrong?

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions