/** * Write a description of class GuessPanel here. * * @author John Paxton * @version 1.0 */ import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.Color; public class GuessPanel extends JPanel implements ActionListener { GuessPanel(String name) { answer = (int) (Math.random() * high) + 1; setBackground(Color.green); greetingJLabel = new JLabel ("Welcome to the guessing game, " + name); add(greetingJLabel); messageJLabel = new JLabel("Please enter a number between " + low + " and " + high); add(messageJLabel); guessJTextField = new JTextField(10); add(guessJTextField); submitJButton = new JButton("Submit Guess"); submitJButton.addActionListener(this); add(submitJButton); } public void actionPerformed (ActionEvent evt) { String text = guessJTextField.getText(); try { int guess = Integer.parseInt(text); if (guess == answer) { messageJLabel.setText("Congratulations, you win! The answer was " + answer); submitJButton.setVisible(false); guessJTextField.setVisible(false); } else { if ((guess > answer) && (guess <= high)) { high = guess - 1; } else if ((guess < answer) && (guess >= low)) { low = guess + 1; } guessJTextField.setText(""); messageJLabel.setText("Please enter a number between " + low + " and " + high); } repaint(); } catch (NumberFormatException e) { guessJTextField.setText(""); } } private JLabel greetingJLabel; private JLabel messageJLabel; private JTextField guessJTextField; private JButton submitJButton; private int answer; private int low = 1; private int high = 1000; }