java实现简单猜数字
作者:纳兰那些事儿 发布时间:2022-12-31 16:20:02
标签:java,猜数字
本文实例为大家分享了java实现简单猜数字的具体代码,供大家参考,具体内容如下
代码不多说,图片自加,实现功能有数字比大小,菜单开始,帮助,退出,关于等,运行结果如图:
代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Bingo extends JFrame implements ActionListener {
JFrame frame;
JMenuBar topBbr;
JMenu menuQ;
JMenu menuF;
JMenuItem start = new JMenuItem("开始(n)");
JMenuItem out = new JMenuItem("不玩了(e)");
JMenuItem help = new JMenuItem("帮助(h)");
JMenuItem about = new JMenuItem("关于(a)");
JPanel panelMain = new JPanel(new BorderLayout());
JPanel panelNext = new JPanel(new BorderLayout());
JButton btnStart;
JPanel jp1, jp2, jp3, jp4;
public static void main(String[] args) {
new Bingo();
}
public Bingo() {
frame = new JFrame();
topBbr = new JMenuBar();
frame.setTitle("王氏猜数字游戏1.0版");
frame.setSize(400, 320);
frame.setLocation(450, 240);
frame.setLayout(getLayout());
// frame.setLayout(new FlowLayout());
menuQ = new JMenu("游戏(q)");
menuQ.add(start);
menuQ.add(out);
menuF = new JMenu("帮助(f)");
ImageIcon icon = new ImageIcon("imgs/logo.jpg");
btnStart = new JButton(icon);
JButton caiButton = new JButton("猜一猜");
JButton congButton = new JButton("重新来");
JTextField text = new JTextField(6);
JLabel mes = new JLabel(" 请你输入一个2位数");
menuF.add(help);
menuF.add(about);
topBbr.add(menuQ);
topBbr.add(menuF);
frame.setJMenuBar(topBbr);
panelMain.add("Center", btnStart);
frame.add(panelMain);
frame.setResizable(false);
frame.setVisible(true);
// Image im = new ImageIcon("imgs/logo.jpg").getImage();
// im = im.getScaledInstance(-1, 90, DO_NOTHING_ON_CLOSE);
// setIconImage(im);
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panelMain.setVisible(false);
start.setEnabled(false);
frame.add(panelNext);
jp1 = new JPanel();
jp2 = new JPanel(new GridLayout(2, 1));
jp3 = new JPanel();
JLabel top = new JLabel("??");
// top.setBackground(new Color(100, 100, 0, 100));
// top.setOpaque(true);
JLabel jb = new JLabel(" ");
JLabel jb2 = new JLabel(
" ");
top.setFont(new Font("隶体", Font.BOLD, 100));
top.setForeground(Color.yellow);
jp1.add(top);
jp2.add(mes);
jp2.add(text);
jp3.add(caiButton);
jp3.add(congButton);
panelNext.add("North", jp1);
panelNext.add("Center", jp2);
panelNext.add("West", jb);
panelNext.add("East", jb2);
panelNext.add("South", jp3);
panelNext.setVisible(true);
}
});
// 开始监听1
btnStart.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
start.setEnabled(false);
panelMain.setVisible(false);
frame.add(panelNext);
jp1 = new JPanel();
jp2 = new JPanel(new GridLayout(2, 1));
jp3 = new JPanel();
JLabel top = new JLabel("??");
// top.setBackground(new Color(100, 100, 0, 100));
// top.setOpaque(true);
JLabel jb = new JLabel(" ");
JLabel jb2 = new JLabel(" ");
top.setFont(new Font("隶体", Font.BOLD, 100));
top.setForeground(Color.yellow);
jp1.add(top);
jp2.add(mes);
jp2.add(text);
jp3.add(caiButton);
jp3.add(congButton);
panelNext.add("North", jp1);
panelNext.add("Center", jp2);
panelNext.add("West", jb);
panelNext.add("East", jb2);
panelNext.add("South", jp3);
panelNext.setVisible(true);
}
});
// 退出监听
out.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
}
});
// 帮助监听
help.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "请按开始进行游戏!就是猜数字而已,就不多说了!",
"帮助", JOptionPane.PLAIN_MESSAGE);
}
});
// 关于监听
about.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "谢谢尝脸试玩!", "3Q",
JOptionPane.WARNING_MESSAGE);
}
});
// 开始监听2
caiButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Random x = new Random();
int y = x.nextInt(100);
try {
int num = Integer.parseInt(text.getText());
if (num > y) {
mes.setText(" 你输入的" + num + "大了哦!");
if (num > 99) {
mes.setText(" 请输入小于99的数字!");
}
}else if(num == y){
mes.setText(" 恭喜你猜对了哦!");
}
else{
mes.setText(" 你输入的" + num + "小了哦!");
if (num < 1) {
mes.setText(" 请输入大于0的数字!");
}
}
} catch (Exception e2) {
mes.setText(" 请输入0-99的数字!");
}
}
});
// 重置监听
congButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText("");
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
更多有趣的经典小游戏实现专题,也分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏 玩不停
java经典小游戏汇总
javascript经典小游戏汇总
来源:https://www.cnblogs.com/wangxiuheng/p/4447492.html


猜你喜欢
- 利用Java语言中的集合、Swing、线程等知识点编写一个坦克大战游戏。(1) 画出敌我坦克的原理:在坦克类里面有一个布尔类型变量good。
- 场景:有一个喜欢吃饺子,他有三种不同的方式去吃,蒸饺子,煮饺子,煎饺子,想要用策略模式来设计这个场景,怎么弄?1.复习简单工厂模式具体的代码
- C语言 MD5源码md5c.h:/* POINTER defines a generic pointer type */ typedef u
- 相信大家都见到了微信图标颜色渐变的过程,是不是感觉很牛逼?不得不说微信团队确实是很厉害的团队,不管是从设计还是开发人员。今天我带大家来看看,
- 本文实例为大家分享了Java使用poi操作excel的具体代码,供大家参考,具体内容如下依赖poi的jar包,pom.xml配置如下:<
- 默认情况下Spring Boot使用了内嵌的Tomcat服务器,项目最终被打成jar包运行,每个jar包可以被看作一个独立的Web服务器。传
- 学习编程语言最重要的就是实践。很多小伙伴在学习完编程语言后,一直停留在基础阶段,只懂一大堆理论知识,而不懂得实践。那么,今天我们一起来动手做
- 1、返回字符串,Model传输数据/** * 返回String * @param m
- 线程安全当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类
- 目录介绍需求来源传统算法问题新算法特点性能数据效果“我”是什么适用范围能用多久★★集成建议★★常规集成大型分布式集成配置变更代码示例运行环境
- 看了网上关于记事本的查找替换很多,但都没有达到我想要的结果,然后自己学习总结了以下的方法:统计字符串(汉字,字母,数字,字符)先上效果图定义
- 反射实例化类public class Person{ public string Name { get; set; }publi
- ProxyFactory是创建代理类的工厂接口,其中的setProperties方法用来对工厂进行属性设置,但是mybatis内置的两个实现
- 引言RecyclerView是在Android5.0版本作为support-v7的一个组件出现,高效替代了最初的ListView等列表组件。
- 使用TransitionDrawable渐变切换多张图片,供大家参考,具体内容如下1、定义变量private int change = 0;
- 之前做了一个小的应用程序,用的是c#语言,涉及到了多线程的多参数传递,经过查找资料总结了一下解决方案!第一种解决方案的原理是:将线程执行的方
- 通过代码操作防火墙的方式有两种:一是代码操作修改注册表启用或关闭防火墙;二是直接操作防火墙对象来启用或关闭防火墙。不论哪一种方式,都需要使用
- FeignClient接口调用无参字符串参数对象参数拟定客户端调用服务端接口,直接放代码啦,参考格式即可。1、无参服务端方法:
- 1,首先要安装OpenCvSharp,使用cv2的函数获取设备,并将图像转换到Bitmapusing OpenCvSharp;
- MyBatis提供了 * 接口,我们可以实现自己的 * ,将其作为一个plugin装入到SqlSessionFactory中。 首先要说的是