Implementation conforms to the requirements. import java.awt.Color; import javax
ID: 3866926 • Letter: I
Question
Implementation conforms to the requirements.
import java.awt.Color;
import javax.swing.*;
public class TestSudoku
{
public static void main(String args[])
{
SudokuLayout frame=new SudokuLayout();//create object 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);
}
}
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"};
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{
@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!");
}
}
}
}
Explanation / Answer
the codeis correct
import java.awt.Color;
import javax.swing.*;
public class TestSudoku
{
public static void main(String args[])
{
SudokuLayout frame=new SudokuLayout();//create object 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);
}
}
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"};
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{
@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!");
}
}
}
}