在Java编程中,这个"猜字游戏"的代码示例展示了如何创建一个基本的图形用户界面(GUI)应用程序,其中包含了随机数生成、变色提示以及简单的猜测判断。以下是对这段代码中的关键知识点进行详细解析: 1. **框架类**:`test` 类继承自 `JFrame`,这是Java Swing库中的基础窗口组件,用于创建图形界面。 2. **变量声明**: - `guessNum`:用于存储生成的随机数,范围是1到200。 - `message`:一个 `JLabel`,显示提示信息和计数器。 - `input`:一个 `JTextField`,用户输入他们猜测的数字。 - `count` 和 `guessed`:分别记录用户尝试次数和当前猜测的数字。 3. **构造方法**:`test()` 方法初始化 `JFrame`,设置其标题为"猜字"。它设置了窗口布局为 `BorderLayout`,将组件分为了北(north)、中心(center)两个区域。 4. **随机数生成**:使用 `Math.random()` 函数生成一个0到1之间的浮点数,乘以200并向上取整,确保得到的是1到200之间的整数。 5. **用户输入处理**:`input` 的 `addActionListener` 事件监听器,当用户输入一个数字时,会调用 `guess(guessed)` 函数进行猜测验证。输入的文本转换为整数并存储在 `guessed` 变量中。 6. **猜测判断**: - 当 `guess(guessed)` 返回-1,表示猜测错误,此时 `message` 背景颜色变为蓝色,并显示计数器(用户尝试次数)。 - 如果返回1,表示猜测正确,背景颜色变为红色,同样显示计数器,但没有提示用户已经猜对。 7. **颜色变化**:通过修改 `message` 的 `setBackground` 属性,实现颜色的实时反馈,增强了用户体验和交互性。 8. **界面布局**:使用 `BorderLayout` 控制各个组件的布局,使得输入框和提示信息在窗口中清晰可见。 这个程序的核心逻辑围绕着随机数生成、用户输入处理以及反馈机制展开,通过简单的Java Swing API,实现了基本的猜数字游戏功能。开发者可以进一步扩展这个代码,增加更多的错误提示、限制猜测次数或者引入更复杂的逻辑,例如允许用户猜测单词而不是单个数字。
import javax.swing.*;
import java.awt.event.*;
public class test extends JFrame {
private int guessNum;
private JLabel message;
private JTextField input;
int count = 0;
int guessed;
public test() {
super("猜字游戏");
Container pane = this.getContentPane();
pane.setLayout(new BorderLayout());
guessNum = ((int) (Math.random() * 200)) + 1;
input = new JTextField();
message = new JLabel("有1个数,在1-200之间。猜猜看,这个数是多少?");
message.setHorizontalAlignment(SwingConstants.CENTER);
message.setBackground(Color.white);
message.setFont(new Font("TimesRoman", Font.PLAIN, 20));
pane.add(input, BorderLayout.NORTH);
pane.add(message, BorderLayout.CENTER);
input.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
guessed = Integer.parseInt(input.getText());
count++;
if (-1 == guess(guessed)) {
message.setBackground(Color.blue);
message.setText("猜了" + count + "次,太小");
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 6
- 资源: 45
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦