I made this program but it isn't working; any suggestions?
/*
* Program Name : GuessGame.java
* Author : James Resue
* Date : October 6, 2010
* Purpose: Write a program GuessGame.java that plays the game “guess the number” as follows:
* Your program chooses the number to be guessed by selecting an integer at random in the range 1–1000.
* The program then displays the following in a label:
* I have a number between 1 and 1000 can you guess my number?
* Please enter your first guess.
*/
import javax.swing.*;
import java.awt.event.*;
import java.awt.*; //used for layout manager
import java.util.Random;;
public class GuessGame extends JFrame
{
private JButton newGameButton;
private JButton enterButton;
private JButton exitButton;
private JTextField guessBox;
private JLabel initialTextLabel;
private JLabel enterLabel;
private JLabel userMessageLabel;
private int randomNumber;
private int userGuess;
private int counter = 0;
private int lastGuess = 0;
public GuessGame()
{
super("Guessing Game");
newGameButton = new JButton("New Game");
exitButton = new JButton("Exit Game");
enterButton = new JButton("Enter");
guessBox = new JTextField(4);
initialTextLabel = new JLabel("I have a number between 1 and 1000 can you guess my number?");
enterLabel = new JLabel("Please enter your first guess.");
userMessageLabel = new JLabel("");
randomNumber = new Random().nextInt(1000) + 1;
setBackground(Color.ORANGE);
//set the layout manager
setLayout(new FlowLayout());
//add components
add(initialTextLabel);
add(enterLabel);
add(guessBox);
add(newGameButton);
add(enterButton);
add(exitButton);
//create accelerator keys
newGameButton.setMnemonic('N');
exitButton.setMnemonic('x');
enterButton.setMnemonic('E');
//set default frame size
setSize(500, 125);
//define and register windows event handler
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//create and register the button event handlers
newGameButtonHandler nghandler = new newGameButtonHandler();
newGameButton.addActionListener(nghandler); //register the value
ExitButtonHandler exithandler = new ExitButtonHandler();
exitButton.addActionListener(exithandler);
enterButtonHandler enterhandler = new enterButtonHandler();
enterButton.addActionListener(enterhandler);
}//end of GuessGame constructor
//newGameButtonHandler class
class newGameButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
setBackground(Color.ORANGE);
userMessageLabel.setText("");
randomNumber = new Random().nextInt(1000) + 1;
}
}//end of inner class
class ExitButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}//end of inner class
class enterButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
userGuess = Integer.parseInt(guessBox.getText());
compareGuess(userGuess, randomNumber);
}
}
public void compareGuess(int userGuess, int randomNumber)
{
counter++;
if (userGuess == randomNumber)
{
userMessageLabel.setText("You are correct, it took you: " + counter + "guess(es)");
setBackground(Color.GREEN);
}
else if (userGuess > randomNumber)
{
userMessageLabel.setText("Too high");
}
else if (userGuess < randomNumber)
{
userMessageLabel.setText("Too Low");
}
if (counter > 1)
{
if ((randomNumber - userGuess) > (randomNumber - lastGuess))
{
setBackground(Color.RED);
}
else if ((randomNumber - userGuess) < (randomNumber - lastGuess))
{
setBackground(Color.BLUE);
}
else
{
setBackground(Color.GRAY);
}
}//end if
lastGuess = userGuess;
}//end compareGuess()
public static void main(String[] args)
{
GuessGame myGuessGame = new GuessGame(); //instantiate a GUI object
myGuessGame.setVisible(true);
}//end main
}