Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA PROGRAMMING Write a program that simulates a guessing game in a GUI program

ID: 3659156 • Letter: J

Question


JAVA PROGRAMMING


Write a program that simulates a guessing game in a GUI program (Swing). Generate a random number between 1 and 100; that number is hidden from the user Ask the user for a number between 1 and 100 in a text field. Verify that the input is an integer in the proper range. (Hint: try/catch) Tell the user whether the number is too high, too low, or the correct number. Let the user continue guessing until he or she guesses the right number. Provide some means for the user to exit the program other than closing the window.

Explanation / Answer

A small change to the previously submitted code
GuessingGame.java


import java.awt.*;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class GuessingGame {

JTextField numberField;
JButton exitButton;
JButton okButton;
JButton restart;
JLabel hint;
JLabel label;
JFrame frame;
int number;
int guessed;

public GuessingGame() {
frame = new JFrame("Guessing Game");

// frame.setLayout(new FlowLayout());


numberField = new JTextField(5);
exitButton = new JButton("Exit");
okButton = new JButton("Check ");
restart = new JButton("Start Again ");
hint = new JLabel("Hint: Enter a number between 1-100 ");
label = new JLabel("Enter a number : ");
Box horizontalBox = Box.createHorizontalBox();
Box verticalBox = Box.createVerticalBox();

// frame.setLayout(new FlowLayout(FlowLayout.CENTER));
horizontalBox.add(label);
horizontalBox.add(numberField);
horizontalBox.setSize(100, 20);
horizontalBox.setVisible(true);

verticalBox.add(hint);
verticalBox.add(restart);
verticalBox.add(okButton);
verticalBox.add(exitButton);
verticalBox.setSize(400, 300);
verticalBox.setVisible(true);

Container container = frame.getContentPane();
container.setVisible(true);
container.add(horizontalBox, BorderLayout.NORTH);
container.add(verticalBox, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setVisible(true);

exitButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {

frame.dispose();
}
});
restart.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {

number = (int) (Math.random() * 100);
hint.setText("Hint: Enter a number between 1-100 ");
numberField.setText("");

}
});
okButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {

String temp = numberField.getText();
if (temp != null) {
try {
guessed = Integer.parseInt(temp);
if (guessed > 100)
hint.setText("Enter a number between 1-100");
else if (guessed > number)
hint.setText("Guessed Number is greater than the original number");
else if (guessed < number)
hint.setText("Guessed Number is lesser than the original number");
else
hint.setText("Congratulations!! Correct answer.");
} catch (Exception e) {
hint.setText("Not a valid number");
}

}

}
});
number = (int) (Math.random() * 100);

}

public static void main(String[] args) {

new GuessingGame();

}

}