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);
}
}