帮我用Java写一个自行完成图形界面版的猜数游戏。程序运行后显示一个猜数界面,同时程序会产生一个100以内的随机整数,用户在界面上的文本框输入猜测所生成的数的大小,在用户每次猜数之后,界面会给出相应的提示信息(猜大了,猜小了,猜对了)。程序
时间: 2024-05-12 18:18:30 浏览: 119
的界面应该包括一个文本框,一个按钮以及一个提示信息框。用户点击按钮提交猜测,程序随即根据用户输入的数值与预设的随机数进行比对,给予相应的提示信息,并清空文本框,等待用户下一轮的猜测。当用户猜对预设的数值时,程序会弹出提示框告知用户胜利并询问是否继续游戏。
以下是 Java 代码,具体操作步骤如下所示:
1. 创建 Java 程序文件 GuessingGame.java。
2. 使用 Java 中的 Swing 包实现图形化界面的设计。
3. 创建一个类 GuessingGame 实现 ActionListener 接口,实现按钮点击事件的监听。
4. 在构造函数中初始化界面,包括文本框、按钮以及提示信息框。
5. 生成一个100以内的随机整数。
6. 在按钮点击事件监听函数 actionPerformed 中实现猜数游戏的逻辑,包括获取用户输入的数据、与预设的随机数进行比对、给予相应的提示信息、清空文本框等操作。
7. 当用户猜对预设的数值时,弹出提示框告知用户胜利,并询问是否继续游戏。
代码如下,仅供参考:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GuessingGame implements ActionListener {
private JFrame frame;
private JTextField textField;
private JButton button;
private JLabel prompt;
private int answer;
public GuessingGame() {
frame = new JFrame("Guessing Game");
textField = new JTextField(10);
button = new JButton("Guess");
prompt = new JLabel("Enter a number between 1 and 100:");
button.addActionListener(this);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.add(prompt);
panel.add(textField);
panel.add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
answer = (int)(Math.random() * 100) + 1;
}
public void actionPerformed(ActionEvent e) {
int guess = Integer.parseInt(textField.getText());
if (guess > answer) {
prompt.setText("Too high, try again:");
textField.setText("");
} else if (guess < answer) {
prompt.setText("Too low, try again:");
textField.setText("");
} else {
int option = JOptionPane.showConfirmDialog(frame, "You win! Play again?", "Congratulations", JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION) {
answer = (int)(Math.random() * 100) + 1;
prompt.setText("Enter a number between 1 and 100:");
textField.setText("");
} else {
frame.dispose();
}
}
}
public static void main(String[] args) {
new GuessingGame();
}
}
```
阅读全文