Please help me answer this question for my code below: Implementation conforms t
ID: 3907529 • Letter: P
Question
Please help me answer this question for my code below:
Implementation conforms to the requirements (using private class listeners or adapter class)
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{
private JTextArea txtArea;
private JPanel gridPanel,butPanel;
private JButton hint,reset,solve,newPuzzel;
private JComboBox difficultyBox;
public SudokuLayout()
{
setTitle("TestSudoku");
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(3);
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)));
String[] difficulties = { "Easy", "Medium", "Hard"};
difficultyBox = new JComboBox(difficulties);
difficultyBox.setSelectedIndex(2);
butPanel.add(difficultyBox);
add(butPanel,BorderLayout.EAST);
reset.addActionListener(new ButtonsAction());
hint.addActionListener(new ButtonsAction());
solve.addActionListener(new ButtonsAction());
newPuzzel.addActionListener(new ButtonsAction());
difficultyBox.addActionListener(new ButtonsAction());
txtArea = new JTextArea(4, 20);
txtArea.setBorder(BorderFactory.createTitledBorder("output"));
txtArea.setText("Welcome To My Soduku");
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 if(button.equals(difficultyBox))
{
txtArea.setText(difficultyBox.getSelectedItem().toString() + " option selected.");
}
else
{
txtArea.setText("New Puzzel button clicked!");
}
}
}
}
import javax.swing.JFrame;
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);
}
}
Explanation / Answer
Yes, your implementation conforms to the question that the action listeners should be private classes. In your case, ButtonsAction is a private class inside your code, which implements ActionListener. Please comment if you need more help on this. Thanks!
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.