java计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。 界面要示:用图形界面实现。并给出源代码
时间: 2024-04-06 18:33:07 浏览: 8
好的,下面是一个基于Java Swing库的猜数字游戏图形界面的实现。您可以在此基础上进行修改和优化。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GuessNumber extends JFrame implements ActionListener {
private JLabel timeLabel;
private JLabel resultLabel;
private JTextField inputField;
private JButton submitButton;
private int target;
private long startTime;
public static void main(String[] args) {
GuessNumber game = new GuessNumber();
game.setVisible(true);
}
public GuessNumber() {
super("猜数字游戏");
// 生成随机数
target = (int) (Math.random() * 100);
// 设置窗口属性
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// 添加组件
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(3, 1));
timeLabel = new JLabel("用时:0秒");
timeLabel.setHorizontalAlignment(SwingConstants.CENTER);
contentPane.add(timeLabel);
resultLabel = new JLabel("请输入猜测的数字(0-99):");
resultLabel.setHorizontalAlignment(SwingConstants.CENTER);
contentPane.add(resultLabel);
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new FlowLayout());
inputField = new JTextField(10);
inputPanel.add(inputField);
submitButton = new JButton("提交");
submitButton.addActionListener(this);
inputPanel.add(submitButton);
contentPane.add(inputPanel);
// 开始计时
startTime = System.currentTimeMillis();
}
@Override
public void actionPerformed(ActionEvent e) {
int guess;
try {
guess = Integer.parseInt(inputField.getText());
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "请输入正确的数字!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
if (guess == target) {
// 猜中了
long duration = System.currentTimeMillis() - startTime;
double seconds = duration / 1000.0;
String message = String.format("恭喜您猜中了!用时%.1f秒。", seconds);
JOptionPane.showMessageDialog(this, message, "胜利", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
} else if (guess < target) {
// 猜小了
resultLabel.setText("您猜的数字" + guess + "偏小,请继续猜测。");
} else {
// 猜大了
resultLabel.setText("您猜的数字" + guess + "偏大,请继续猜测。");
}
}
}
```
运行结果:
![guess_number](https://user-images.githubusercontent.com/26667491/136190025-32a3dc72-f9f6-4b5c-8d66-1c8e8dce4f0d.png)