java模拟一个抽奖程序
今天用一个程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序
* 需要使用Java的图形界面知识
* 窗口 JFrame
* 面板 JPanel
* 显示文本信息的标签 JLabel
* 文本框 JTextField
* 按钮 JButton
还涉及到线程Thread
先看效果图:
aaarticlea/png;base64,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" alt="" width="452" height="358" />
但是这里留一个问题?就是去除重复数字(可以自己先实现,后期我会上传的)
下面看看代码,代码中有注释,不懂留言:
package thread.test1; import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.*; /**
* 本程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序
* 需要使用Java的图形界面知识
* 窗口 JFrame
* 面板 JPanel
* 显示文本信息的标签 JLabel
* 文本框 JTextField
* 按钮 JButton
*
* */
public class GoodLuck_1 extends JFrame {
JPanel pn1=null;
JPanel pn2;
JPanel pn3;
JTextField tf=null;
JLabel msg=null;
JButton btn1;
JButton btn2;
boolean flag=true;//用于判断是否继续输出出奖号码的标志。 //在构造器中,初始化界面
public GoodLuck_1(){
tf=new JTextField(40);//参数意思是,该文本框能够放多少个字符
pn1=new JPanel();
//组件放在面板上
pn1.add(tf);
//将面板放在窗口上,当前窗口对象就是this,放在顶部(上北)
this.add(pn1, BorderLayout.NORTH);
/*
* Java的JFrame对象,默然的布局管理器是“边界布局” 类名是BorderLayout
*
* */
msg=new JLabel("欢迎访问好运气抽奖程序!");
pn2=new JPanel();
pn2.add(msg);
//面板放在窗体上
this.add(pn2, BorderLayout.CENTER); //底部的按钮部分
btn1=new JButton("开始"); //给开始按钮加入事件
btn1.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//给出奖标志赋值
/*
flag=true;
chouJiang();
*/
/*
* 必须使用多线程技术,重新启动一个新的线程,去赋值flag
* 接着调用chouJiang(), 才可以是程序恢复响应。
* */
class ThreadStart extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
//在这里去调用抽奖方法
flag=true;
chouJiang();
}
} //必须将上面的线程内部类,实例化,之后启动
new ThreadStart().start();
} }); btn2=new JButton("停止"); //给停止按钮添加事件监听
btn2.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//必须启动一个新的停止线程,才能终止无限循环
class ThreadStop extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
flag=false;
}
} //启动上面的内部类线程
new ThreadStop().start();
} }); pn3=new JPanel();
pn3.add(btn1);
pn3.add(btn2); this.add(pn3, BorderLayout.SOUTH); //设置窗口的属性
this.setTitle("好运气中奖程序1.0");
this.setSize(500, 400);
this.setLocation(100, 50);
//JFrame默认的关闭按钮,只是隐藏窗口,需要重写设计关闭功能
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); //chouJiang();
} //对于一个复杂的任务,首先想到的是封装方法
public void chouJiang(){
/*
* 由于开始按钮启动后,什么时候停止,不确定,因此循环次数也不确定
* 需要使用while循环,而且开始就是无限循环
* */
String text=""; //作用是显示在文本框中的号码序列
while(flag){
/**
* 每次循环都是从1-32之间,随机抽取7组号码,拼成字符串
* 显示在文本框中
* */
text=""; //每次显示号码时,都重新显示新抽的号码
for(int i=0;i<7;i++){
int m=(int)(Math.random()*32+1);
if(m<10){
text=text+" 0"+m;
}
else {
text=text+" "+m;
}
}
//这里需要一点时间的停顿,否则循环太快,会出问题 try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//显示在文本框中
tf.setText(text);
} } public static void main(String[] args) {
//在正在的开发中,main方法中的代码,越少越好。
new GoodLuck_1();
} }
有需要的自己那过去试一试,玩一玩!
java模拟一个抽奖程序的更多相关文章
- 用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
package com.ljn.base; /** * @author lijinnan * @date:2013-9-12 上午9:55:32 */ public class IncDecThrea ...
- 利用Python写一个抽奖程序,解密游戏内抽奖的秘密
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- 使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序 实现思路: 在 HTML 页面中放置背景图片.转盘和指针 3 张图片,并设置指 ...
- 为什么用 Java:一个 Python 程序员告诉你
这篇文章专门给程序员写的,普通读者慎入.原作者:Kevin Sookocheff 译者:Celia Zhen,原文点击文末链接. 每当我告诉别人我一直在用Java工作时,大家的反应都是: “纳尼!Ja ...
- 【Java】一个小程序,计算它包含的代码所需的耗时
写一个小程序,用来计算它包含的代码所需的耗时.虽然简单,测试代码是否耗时还是有点用的,不用重新写嘛~ import java.util.Date; import java.util.concurren ...
- 使用Java模拟一个简单的Dos学生成绩管理系统:
使用Java模拟学生成绩管理系统... ------------------- 学生成绩管理系统:需要实现的功能:1.录入学生的姓名和成绩2.显示列表.列表中包括学生姓名与成绩3.显示最高分.最低分的 ...
- 如何用java创建一个jdbc程序
第一个jdbc程序 JDBC简介 Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和 ...
- websocket通信 实现java模拟一个client与webclient通信
发文原由: 熟悉socket通信的同学,对于socket模拟server与client,实现相互通信, 或者使用websocket与java模拟的websocket服务器通信(比如一个聊天室),对于这 ...
- 实例--post请求,完成一个抽奖程序概率的测试
一个web项目测试,测试抽奖概率的正确性,写了一个小代码,验证概率 post和get请求的一个工具类 package kankan_interface; import java.io.IOExcept ...
随机推荐
- 基于angular实现模拟微信小程序swiper组件
这段时间的主业是完成一个家政类小程序,终于是过审核发布了.不得不说微信的这个小程序生态还是颇有想法的,抛开他现有的一些问题不说,其提供的组件系统乍一看还是蛮酷的.比如其提供的一个叫swiper的视图组 ...
- 【锋利的jQuery】表单验证插件踩坑
和前几篇博文提到的一样,由于版本原因,[锋利的jQuery]表单验证插件部分又出现照着敲不出效果的情况. 书中的使用方法: 1. 引入jquery源文件, 2. 引入表单验证插件js文件, 3. 在f ...
- Shiro眼皮下玩ajax,玩出302 Found(实践得经验)
2017/06/14这一天,是我玩Shiro安全框架最刻骨铭心的一天.因为Shiro今天给我深深的补了一刀,在这儿我也给各位补一刀吧,其实问题很简单,解决方式也极其简单,只是给各位分享一下这个错误,纯 ...
- 版本控制工具svn的安装与简单使用
版本控制工具多用于多人协作开发项目中,这不同于个人开发项目,想把自己代码怎样放置都可以,而且删除了代码很难查找. 版本控制工具类似于个人处理钱的过程,放于自己口袋管理类似于个人开发情形,如果自己钱丢了 ...
- 轻松Angularjs实现表格按指定列排序
angular表格点击序号进行升序,再次点击进行降序排序,在输入框输入信息,出现相对应数据的那一行. html: <input type="text" ng-model=&q ...
- 使用websocket-sharp来创建c#版本的websocket服务
当前有一个需求,需要网页端调用扫描仪,javascript不具备调用能力,因此需要在机器上提供一个ws服务给前端网页调用扫描仪.而扫描仪有一个c#版本的API,因此需要寻找一个c#的websocket ...
- IBM的人工智能“沃森”首次确诊罕见白血病,只用了10分钟!
患者为一名60岁的女性,最初根据诊断结果,显示她患了急髓白血病.但在经历各种疗法后,效果并不明显. 根据东大医学院研究人员Arinobu Tojo的说法,他们利用Watson系统来对此病人进行诊断.系 ...
- Scheme实现二叉查找树及基本操作(添加、删除、并、交)
表转化成平衡二叉树 其中有一种分治的思想. (define (list->tree elements) (define (partial-tree elts n) (if (= n 0) (co ...
- solr 搜索引擎查询
搜索引擎查询的时候://对于这些filterQuery的字段,必须是indexed="true",如果之前有这个字段后来改这个indexed属性,则需要重新建立索引,否则搜索不到S ...
- EntityFramework连接SQLite
EF很强大,可惜对于SQLite不支持CodeFirst模式(需要提前先设计好数据库表结构),不过对SQLite的数据操作还是很好用的. 先用SQLiteManager随便创建一个数据库和一张表: