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

Please fix and test my code so that all the buttons and function are working in

ID: 3906841 • Letter: P

Question

Please fix and test my code so that all the buttons and function are working in the Sudoku.

CODE:
SudokuLayout.java:
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField;

public class SudokuLayout extends JFrame{ JTextArea txtArea;//for output JPanel gridPanel,butPanel;//panels for sudoku bord and buttons JButton hint,reset,solve,newPuzzel;//declare buttons JComboBox difficultyBox; SudokuLayout() { setName("Sudoku Bord");//set name of frame // setTitle("Sudoku Bord");//set title for sudoku frame setLayout(new BorderLayout());//set border layout to the Sudoku frame          //create grid layout to the Sudoku board GridLayout gbag=new GridLayout(3,9); gridPanel=new JPanel(gbag);    for (int k = 1; k <= 9; k++)//it repesents the nine 3x3 panels { JPanel level2 = new JPanel(new GridLayout(3,3));//create 3x3 panels
for (int i = 1; i <= 9; i++) { JTextField text = new JTextField(" "); //create text feilds level2.add(text); } level2.setBorder(BorderFactory.createBevelBorder(1)); level2.setBackground(Color.BLACK); gridPanel.add(level2);//add 3x3 panel in 3x9 panel }    add(gridPanel, BorderLayout.WEST);    //create control buttons hint=new JButton("Hint"); reset=new JButton("Reset"); solve=new JButton("Solve"); newPuzzel=new JButton("New Puzzel"); //create panel for buttons butPanel=new JPanel(); butPanel.setLayout(new BoxLayout(butPanel,BoxLayout.Y_AXIS)); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(reset); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(hint); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(solve); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(newPuzzel); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(Box.createRigidArea(new Dimension(0,15))); //add empty space between components    String[] difficulties = { "Easy", "Medium", "Hard"}; //Create the combo box, select item at index 1. //Indices start at 0, so 1 specifies Medium. difficultyBox = new JComboBox(difficulties); difficultyBox.setSelectedIndex(2); butPanel.add(difficultyBox); //add buttons panel on sudoku panel add(butPanel,BorderLayout.EAST);    //add action listeners reset.addActionListener(new ButtonsAction()); hint.addActionListener(new ButtonsAction()); solve.addActionListener(new ButtonsAction()); newPuzzel.addActionListener(new ButtonsAction());          //create text area for result txtArea = new JTextArea(4, 20); txtArea.setBorder(BorderFactory.createTitledBorder("output")); txtArea.setText("Hello world!");
add(txtArea, BorderLayout.SOUTH); }
      private class ButtonsAction implements ActionListener{ //private listener class   
@Override public void actionPerformed(ActionEvent e) {//implements actionPerformed Object button=e.getSource(); if(button.equals(hint))//check source onject is hint button { txtArea.setText("Hint Button clicked!.."); } else if(button.equals(reset))//else check source onject is reset button { txtArea.setText("Hello world!"); } else if(button.equals(solve))//else check source onject is solve button { txtArea.setText("Solve button clicked!"); } else {//other wise it was new Puzzel button txtArea.setText("New Puzzel button clicked!"); } } }    }
TestSudoku.java:
import java.awt.Color; import javax.swing.*;
public class TestSudoku { public static void main(String args[]) { SudokuLayout frame=new SudokuLayout();//create oject to SudokuLayout class frame.setUndecorated(true); // Remove title bar frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.setSize(450,350);//set size //frame.getRootPane().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.BLACK));//it sets the border to frame frame.setResizable(false); frame.setVisible(true); frame.pack(); //set size correct frame.setLocationRelativeTo(null);//show frame center of the screen frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Please fix and test my code so that all the buttons and function are working in the Sudoku.

CODE:
SudokuLayout.java:
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField;

public class SudokuLayout extends JFrame{ JTextArea txtArea;//for output JPanel gridPanel,butPanel;//panels for sudoku bord and buttons JButton hint,reset,solve,newPuzzel;//declare buttons JComboBox difficultyBox; SudokuLayout() { setName("Sudoku Bord");//set name of frame // setTitle("Sudoku Bord");//set title for sudoku frame setLayout(new BorderLayout());//set border layout to the Sudoku frame          //create grid layout to the Sudoku board GridLayout gbag=new GridLayout(3,9); gridPanel=new JPanel(gbag);    for (int k = 1; k <= 9; k++)//it repesents the nine 3x3 panels { JPanel level2 = new JPanel(new GridLayout(3,3));//create 3x3 panels
for (int i = 1; i <= 9; i++) { JTextField text = new JTextField(" "); //create text feilds level2.add(text); } level2.setBorder(BorderFactory.createBevelBorder(1)); level2.setBackground(Color.BLACK); gridPanel.add(level2);//add 3x3 panel in 3x9 panel }    add(gridPanel, BorderLayout.WEST);    //create control buttons hint=new JButton("Hint"); reset=new JButton("Reset"); solve=new JButton("Solve"); newPuzzel=new JButton("New Puzzel"); //create panel for buttons butPanel=new JPanel(); butPanel.setLayout(new BoxLayout(butPanel,BoxLayout.Y_AXIS)); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(reset); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(hint); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(solve); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(newPuzzel); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(Box.createRigidArea(new Dimension(0,15))); //add empty space between components    String[] difficulties = { "Easy", "Medium", "Hard"}; //Create the combo box, select item at index 1. //Indices start at 0, so 1 specifies Medium. difficultyBox = new JComboBox(difficulties); difficultyBox.setSelectedIndex(2); butPanel.add(difficultyBox); //add buttons panel on sudoku panel add(butPanel,BorderLayout.EAST);    //add action listeners reset.addActionListener(new ButtonsAction()); hint.addActionListener(new ButtonsAction()); solve.addActionListener(new ButtonsAction()); newPuzzel.addActionListener(new ButtonsAction());          //create text area for result txtArea = new JTextArea(4, 20); txtArea.setBorder(BorderFactory.createTitledBorder("output")); txtArea.setText("Hello world!");
add(txtArea, BorderLayout.SOUTH); }
      private class ButtonsAction implements ActionListener{ //private listener class   
@Override public void actionPerformed(ActionEvent e) {//implements actionPerformed Object button=e.getSource(); if(button.equals(hint))//check source onject is hint button { txtArea.setText("Hint Button clicked!.."); } else if(button.equals(reset))//else check source onject is reset button { txtArea.setText("Hello world!"); } else if(button.equals(solve))//else check source onject is solve button { txtArea.setText("Solve button clicked!"); } else {//other wise it was new Puzzel button txtArea.setText("New Puzzel button clicked!"); } } }    }
TestSudoku.java:
import java.awt.Color; import javax.swing.*;
public class TestSudoku { public static void main(String args[]) { SudokuLayout frame=new SudokuLayout();//create oject to SudokuLayout class frame.setUndecorated(true); // Remove title bar frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.setSize(450,350);//set size //frame.getRootPane().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.BLACK));//it sets the border to frame frame.setResizable(false); frame.setVisible(true); frame.pack(); //set size correct frame.setLocationRelativeTo(null);//show frame center of the screen frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Please fix and test my code so that all the buttons and function are working in the Sudoku.

CODE:
SudokuLayout.java:
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField;

public class SudokuLayout extends JFrame{ JTextArea txtArea;//for output JPanel gridPanel,butPanel;//panels for sudoku bord and buttons JButton hint,reset,solve,newPuzzel;//declare buttons JComboBox difficultyBox; SudokuLayout() { setName("Sudoku Bord");//set name of frame // setTitle("Sudoku Bord");//set title for sudoku frame setLayout(new BorderLayout());//set border layout to the Sudoku frame          //create grid layout to the Sudoku board GridLayout gbag=new GridLayout(3,9); gridPanel=new JPanel(gbag);    for (int k = 1; k <= 9; k++)//it repesents the nine 3x3 panels { JPanel level2 = new JPanel(new GridLayout(3,3));//create 3x3 panels
for (int i = 1; i <= 9; i++) { JTextField text = new JTextField(" "); //create text feilds level2.add(text); } level2.setBorder(BorderFactory.createBevelBorder(1)); level2.setBackground(Color.BLACK); gridPanel.add(level2);//add 3x3 panel in 3x9 panel }    add(gridPanel, BorderLayout.WEST);    //create control buttons hint=new JButton("Hint"); reset=new JButton("Reset"); solve=new JButton("Solve"); newPuzzel=new JButton("New Puzzel"); //create panel for buttons butPanel=new JPanel(); butPanel.setLayout(new BoxLayout(butPanel,BoxLayout.Y_AXIS)); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(reset); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(hint); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(solve); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(newPuzzel); butPanel.add(Box.createRigidArea(new Dimension(0,15)));//add empty space between components butPanel.add(Box.createRigidArea(new Dimension(0,15))); //add empty space between components    String[] difficulties = { "Easy", "Medium", "Hard"}; //Create the combo box, select item at index 1. //Indices start at 0, so 1 specifies Medium. difficultyBox = new JComboBox(difficulties); difficultyBox.setSelectedIndex(2); butPanel.add(difficultyBox); //add buttons panel on sudoku panel add(butPanel,BorderLayout.EAST);    //add action listeners reset.addActionListener(new ButtonsAction()); hint.addActionListener(new ButtonsAction()); solve.addActionListener(new ButtonsAction()); newPuzzel.addActionListener(new ButtonsAction());          //create text area for result txtArea = new JTextArea(4, 20); txtArea.setBorder(BorderFactory.createTitledBorder("output")); txtArea.setText("Hello world!");
add(txtArea, BorderLayout.SOUTH); }
      private class ButtonsAction implements ActionListener{ //private listener class   
@Override public void actionPerformed(ActionEvent e) {//implements actionPerformed Object button=e.getSource(); if(button.equals(hint))//check source onject is hint button { txtArea.setText("Hint Button clicked!.."); } else if(button.equals(reset))//else check source onject is reset button { txtArea.setText("Hello world!"); } else if(button.equals(solve))//else check source onject is solve button { txtArea.setText("Solve button clicked!"); } else {//other wise it was new Puzzel button txtArea.setText("New Puzzel button clicked!"); } } }    }
TestSudoku.java:
import java.awt.Color; import javax.swing.*;
public class TestSudoku { public static void main(String args[]) { SudokuLayout frame=new SudokuLayout();//create oject to SudokuLayout class frame.setUndecorated(true); // Remove title bar frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.setSize(450,350);//set size //frame.getRootPane().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.BLACK));//it sets the border to frame frame.setResizable(false); frame.setVisible(true); frame.pack(); //set size correct frame.setLocationRelativeTo(null);//show frame center of the screen frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Explanation / Answer

Answer:

Here, I have following modified java program as shown below

SudokuLayout.java:

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.BorderFactory;

import javax.swing.Box;

import javax.swing.BoxLayout;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class SudokuLayout extends JFrame{

JTextArea txtArea;

JPanel gridPanel,butPanel;

JButton hint,reset,solve,newPuzzel;

JComboBox difficultyBox;

SudokuLayout()

{

setName("Sudoku Bord");

setLayout(new BorderLayout());

GridLayout gbag=new GridLayout(3,9);

gridPanel=new JPanel(gbag);

for (int k = 1; k <= 9; k++)

{

JPanel level2 = new JPanel(new GridLayout(3,3));

for (int i = 1; i <= 9; i++)

{

JTextField text = new JTextField(" ");

level2.add(text);

}

level2.setBorder(BorderFactory.createBevelBorder(1));

level2.setBackground(Color.BLACK);

gridPanel.add(level2);

}

add(gridPanel, BorderLayout.WEST);

hint=new JButton("Hint");

reset=new JButton("Reset");

solve=new JButton("Solve");

newPuzzel=new JButton("New Puzzel");

butPanel=new JPanel();

butPanel.setLayout(new BoxLayout(butPanel,BoxLayout.Y_AXIS));

butPanel.add(Box.createRigidArea(new Dimension(0,15)));

butPanel.add(reset);

butPanel.add(Box.createRigidArea(new Dimension(0,15)));

butPanel.add(hint);

butPanel.add(Box.createRigidArea(new Dimension(0,15)));

butPanel.add(solve);

butPanel.add(Box.createRigidArea(new Dimension(0,15)));

butPanel.add(newPuzzel);

butPanel.add(Box.createRigidArea(new Dimension(0,15)));

butPanel.add(Box.createRigidArea(new Dimension(0,15))); //add empty space between components

String[] difficulties = { "Easy", "Medium", "Hard"};

difficultyBox = new JComboBox(difficulties);

difficultyBox.setSelectedIndex(2);

butPanel.add(difficultyBox);

//add buttons panel on sudoku panel

add(butPanel,BorderLayout.EAST);

reset.addActionListener(new ButtonsAction());

hint.addActionListener(new ButtonsAction());

solve.addActionListener(new ButtonsAction());

newPuzzel.addActionListener(new ButtonsAction());

txtArea = new JTextArea(4, 20);

txtArea.setBorder(BorderFactory.createTitledBorder("output"));

txtArea.setText("Hello world!");

add(txtArea, BorderLayout.SOUTH);

}

private class ButtonsAction implements ActionListener{

@Override

public void actionPerformed(ActionEvent e) {

Object button=e.getSource();

if(button.equals(hint))

{

txtArea.setText("Hint Button clicked!..");

}

else if(button.equals(reset))

{

txtArea.setText("Reset Button clicked!");

}

else if(button.equals(solve))

{

txtArea.setText("Solve button clicked!");

}

else

{

txtArea.setText("New Puzzel button clicked!");

}

}

}

}

TestSudoku.java:

import java.awt.Color;

import javax.swing.*;

public class TestSudoku

{

public static void main(String args[])

{

SudokuLayout frame=new SudokuLayout();

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

frame.setSize(450,350);

frame.setResizable(false);

frame.setVisible(true);

frame.pack();

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}