版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、package com.game.caishuzi;import java.awt.button;import java.awt.color;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.util.random;import java.util.scanner;import java.util.timer;import java.util.timertask;import javax.swing.jframe;import javax.swing.jlabel;import
2、javax.swing.joptionpane;import javax.swing.jtextfield;public class window extends jframe/* * */private static final long serialversionuid = 1l;private static int num;private static string outtime;private static boolean waits = false;/false暂停 true继续public static void main(string args) jframe jf = new
3、 jframe();jf.settitle(猜数字);jf.setlayout(null);setbuttoms(jf);jf.setsize(400, 300);jf.setlocationrelativeto(null);jf.setresizable(false);jf.setvisible(true);jf.setdefaultcloseoperation(jframe.exit_on_close);public static void setlables(jframe jf)jlabel jl = new jlabel(级别:);jlabel sumtime = new jlabel
4、(倒计时:);jl.setbounds(80, 70, 40, 30);sumtime.setbounds(20, 230, 55, 30);jf.add(jl);jf.add(sumtime);public static void setbuttoms(final jframe jf)button bt0 = new button(简单);button bt1 = new button(普通);button bt2 = new button(困难);button bt3 = new button(我猜);button bt4 = new button(答案);button start = n
5、ew button(开始);final button stop = new button(暂停);button bt = new button(退出);final jlabel jtf = new jlabel(普通);/级别显示final jlabel messages = new jlabel();/级别结果信息final jtextfield shuru = new jtextfield(请输入5个不重复的数字!);/输入框shuru.setenabled(false);/没有点击开始前,不能输入,只读设置/秒表,倒计时final jlabel time = new jlabel(10:
6、00);bt0.setbackground(color.gray);bt1.setbackground(color.gray);bt2.setbackground(color.gray);bt0.setbounds(80, 20, 50, 30);bt1.setbounds(170, 20, 50, 30);bt2.setbounds(260, 20, 50, 30);bt3.setbounds(230, 120, 50, 30);bt4.setbounds(300, 120, 50, 30);bt.setbounds(320, 220, 50, 30);start.setbounds(230
7、, 70, 50, 30);stop.setbounds(300, 70, 50, 30);jtf.setbounds(130, 70, 50, 30);shuru.setbounds(80, 120, 140, 30);messages.setbounds(10, 150, 280, 30);time.setbounds(70, 230, 150, 30);/按钮事件 start/1.选择难度bt0.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) jtf.set
8、text(简单);shuru.settext(请输入3个不重复的数字!);time.settext(3:00);waits = false;shuru.setenabled(false);num=null;);bt1.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) jtf.settext(普通);shuru.settext(请输入5个不重复的数字!);time.settext(10:00);waits = false;shuru.setenabled(false)
9、;num=null;);bt2.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) jtf.settext(困难);shuru.settext(请输入8个不重复的数字!);time.settext(20:00);waits = false;shuru.setenabled(false);num=null;);/开始/final timertask task = new timertask() /计时器的方式显示时间动态/override/public void run
10、() /window.run(outtime);/time.settext(outtime);/;/final timer timer = new timer(); final thread t = new thread(new thread()/线程的方式实现时间动态overridepublic void run() while(true)try thread.sleep(10);/释放资源 catch (interruptedexception e1) e1.printstacktrace();while(waits)try thread.sleep(1000); catch (inter
11、ruptedexception e) e.printstacktrace();window.run(outtime);time.settext(outtime);if(猜数失败!.equals(outtime)shuru.settext(别灰心,下次在努力吧!);shuru.setenabled(false);return;);start.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) int n;final string times;if(简单.equals(j
12、tf.gettext()n = 3;times=3:00;else if(普通.equals(jtf.gettext()n = 5;times=10:00;else if(困难.equals(jtf.gettext()n = 8;times=20:00;elsejoptionpane.showmessagedialog(null,请选择级别!);return;lifearray(n);/根据级别获取随机数shuru.setenabled(true);shuru.settext();messages.settext();outtime = times;/timer timer = new tim
13、er(); /timer.schedule(task, 0,1000);waits = true;/让时间处于运行状态if(t.isalive()elset.start(););/暂停stop.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) if(暂停.equals(stop.getlabel()waits = false;stop.setlabel(继续);elsewaits = true;stop.setlabel(暂停););/我猜bt3.addaction
14、listener(new actionlistener() overridepublic void actionperformed(actionevent e) if(null=num)joptionpane.showmessagedialog(null,请先开始游戏!);return;if(.equals(shuru.gettext()joptionpane.showmessagedialog(null,请输入数字!);return;int n;if(简单.equals(jtf.gettext()n = 1;else if(普通.equals(jtf.gettext()n = 2;else
15、if(困难.equals(jtf.gettext()n = 3;elsejoptionpane.showmessagedialog(null,请选择级别!);return;string message = init(n,shuru.gettext();if(!.equals(message)/joptionpane.showmessagedialog(null,message);messages.settext(message);if(恭喜你猜对了!.equals(message)shuru.setenabled(false);/输入框只读waits = false;/倒计时停止num=nul
16、l;);/答案bt4.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) string strs = ;for(int c: num)strs+=c;shuru.settext(strs);messages.settext(偷看答案不是好孩子哦!);waits = false;shuru.setenabled(false);num=null;);/退出bt.addactionlistener(new actionlistener() overridepublic vo
17、id actionperformed(actionevent e) jf.dispose(););/按钮事件endjf.add(jtf);jf.add(bt0);jf.add(bt1);jf.add(bt2);jf.add(bt3);jf.add(bt4);jf.add(bt);jf.add(start);jf.add(stop);jf.add(shuru);jf.add(messages);jf.add(time);setlables(jf);/生成随机数,不重复public static void lifearray(int s) num = new ints;/随机生成的数random
18、r = new random();int a;for(int i=0;is;i+)a= r.nextint(9)+1;int b = 0;for(int k=0;knum.length;k+)if(a!=numk)b+;if(b=num.length)numi=a;elsei-;public static string init(int n,string str)string message = ;scanner sc = new scanner(system.in);int s;if(n = 1)s= 3;else if(n=2)s= 5;elses= 8;/int num = lifear
19、ray(s);/生成随机数/system.out.println(arrays.tostring(num);if(n=1)if(str.length()!=3)system.out.println(请输入3位数!);return 请输入3位数!;else if(n=2)if(str.length()!=5)system.out.println(请输入5位数!);return 请输入5位数;else if(n=3)if(str.length()!=8)system.out.println(请输入8位数!);return 请输入8位数!;/system.out.println(arrays.tostring(num)+:+str);/开始猜数字int jishu = 0,sumjishu = 0;/统计有几个对的for(int i=0;is;i+)/位置数字都对的try
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南湘西州古丈县公安局招聘留置看护警务辅助人员的9人备考题库带答案详解(突破训练)
- 2026四川达州万源市公安局招聘辅警20人备考题库附答案详解(满分必刷)
- 2026云南玉溪通海县公安局警务辅助人员招聘7人备考题库(第三期)带答案详解ab卷
- 2026山东烟台市中级人民法院招聘聘用制司法辅助人员8人备考题库附答案详解(夺分金卷)
- 全面推行四天工作制度
- 街道无邪教创建工作制度
- 城市流动人口社会救助体系研究课题申报书
- 浙江省金华市义乌市2026年八年级下学期月考数学试卷附答案
- 《JBT 3585.1-2013感应同步器 第1部分:术语》专题研究报告
- AI赋能金融信贷审核:技术落地与实践指南
- 第8课 动物的耳朵 课件 青岛版六三制一年级科学下册
- 外架施工技术交底
- 零件CAM软件编程-CAXA制造工程师 课件全套任务1-7 CAXA 制造工程师 2022 软件功能认知-壳体加工
- IPC-4552B-2024EN印制板化学镀镍浸金(ENIG)镀覆性能规范英文版
- 食品工程原理课件蒸发
- 化工安全工程概论-第五章
- GB/T 4340.3-2025金属材料维氏硬度试验第3部分:标准硬度块的标定
- 浙江省公路工程质检资料管理文件用表
- 西部计划考试考题及答案
- 全国职业院校技能大赛高职组(市政管线(道)数字化施工赛项)考试题库(含答案)
- 2025年江西赣州市政公用集团招聘笔试参考题库含答案解析
评论
0/150
提交评论