The program template represents a complete working Java program, with one or more key lines of code replaced with comments. Read the problem description and examine the sample output; then study the template code. Using the problem-solving tips as a guide, replace the /* */ comments with Java code. Compile and execute the program. Compare your output with the sample output provided. Then answer the follow-up questions. The source code for the template is available at the course website (sclass).
Write an application that plays “guess the number” as follows: Your application chooses the number to be guessed by selecting an integer at random in the range 1–1000. The application 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.
A JTextField should be used to input the guess. As each guess is input, the background color should change to either red or blue. Red indicates that the user is getting “warmer,” and blue indicates that the user is getting “colder.” A JLabel should display either “Too High” or “Too Low” to help the user zero in on the correct answer. When the user gets the correct answer, “Correct!” should be displayed, and the JTextField used for input should be changed to be uneditable. A JButton should be provided to allow the user to play the game again. When the JButton is clicked, a new random number should be generated and the input JTextField changed to be editable.
1. Use methods from the JTextField class to manipulate all JTextField components. For instance, method setText will set the text of the text field, and method setEditable will set whether the text field can be edited or not. 2. Method setBackground from class JFrame sets the background color of the JFrame. 3. Use method nextInt from class Random to generate a random number from 1 to 1000. You will need to scale the range of values produced by random by 1000 and shift the range by 1. 4. Use variables lastDistance and currentDistance to determine the distance of the guess from the actual number. If this distance gets larger between guesses, set the background color of the JFrame to blue. If this distance gets smaller or stays the same, set the background color to red. 5. If you have any questions as you proceed, ask your lab instructor for assistance.
Follow-Up Questions and Activities
1. Modify the previous program to keep track of how many guesses the user has made, and display that number in another JLabel in the JFrame.
2. Now modify the previous program so that there is another JLabel in the JFrame that contains the number to be guessed, but does not become visible, until the user guesses the right number. In other words the JLabel is always there, the user just can’t see it until the correct number is guessed.
Submit 3 files of the 3 version of GuessGameFrame: GuessGameFrame1, GuessGameFrame, and GuessGameFrame3.java via the slcass.