Java编写猜数字游戏swing_求写一个有窗体的猜数字小游戏

这篇博客介绍了一个使用Java Swing实现的猜数字游戏。游戏窗口包含一个提示文本、输入框和结果显示文本。玩家输入数字,程序会判断并显示大小关系,直到猜中随机数。游戏监听器类负责处理用户的输入和反馈显示。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package cn.queai;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextField;

/*

*

*/

public class Game extends JFrame {

public static void main(String[] args) {

new Game("猜数字游戏");

}

private int number; // 随机数

private JLabel helpText; // 提示文本

private JTextField inText; // 获得输入

private JLabel showText; // 结果文本

private GameListener Listener; // 输入框的监视器

public Game(String name) {

init(); // 添加组件

this.setTitle(name);// 设置标题

this.setVisible(true); // 是否可见

this.setLayout(new FlowLayout()); // 设置布局

this.setBounds(10, 10, 350, 100);// 大小

// 设置关闭

this.addWindowListener(new WindowListener() {

public void windowOpened(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowIconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeiconified(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowDeactivated(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowClosing(WindowEvent e) {

// TODO Auto-generated method stub

}

public void windowClosed(WindowEvent e) {

System.exit(0); // 关闭。

}

@Override

public void windowActivated(WindowEvent e) {

// TODO Auto-generated method stub

}

});

}

private void init() {

// 初始化组件

number = new Random().nextInt(101); // 包括100

helpText = new JLabel();

inText = new JTextField(4);

showText = new JLabel();

Listener = new GameListener();

// 设置组件。

helpText.setText("请输入数字(0-100):");

Listener.setComponent(helpText, inText, showText);// 把组件传过去,监视器才能操作

Listener.setNumber(number);// 传密码过去

inText.addActionListener(Listener);// 添加监视器

showText.setText("回车检测!");

// 顺序添加组件。

this.add(helpText);

this.add(inText);

this.add(showText);

}

}

class GameListener implements ActionListener {

/*

* 游戏检测类。输入框的监视器。

*/

private JLabel helpText; // 提示文本

private JTextField inText; // 获得输入

private JLabel showText; // 结果文本

private int number; // 随机数

public void setNumber(int number) {

this.number = number;

}

// 监视器拿到三个组件

public void setComponent(JLabel helpText, JTextField inText, JLabel showText) {

this.helpText = helpText;

this.inText = inText;

this.showText = showText;

}

public void actionPerformed(ActionEvent e) {

// 游戏检测。

showText.setText(""); // 清空结果文本

String str = inText.getText();

int num = -1;

try {

num = Integer.parseInt(str);

} catch (NumberFormatException e1) {

showText.setText("输入了非数字!");

return;

}

if (num < number) {

showText.setText("小了 ==");

} else if (num > number) {

showText.setText("大了 >

} else {

showText.setText("猜对了。");

}

inText.setText("");// 清空输入框

inText.setFocusable(true);// 获得焦点

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值